You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

121 lines
3.9 KiB

import java.util.Scanner;
/**
* 温度转换工具类
* 实现摄氏度(C)与华氏度(F)的相互转换,输入格式要求为「数值 单位」(如36.6 C、97 F)
* 完全移植对应Python温度转换程序的核心逻辑与交互方式
*/
public class TemperatureConverter {
/**
* 将摄氏度转换为华氏度
* @param c 浮点型,待转换的摄氏温度值
* @return 浮点型,转换后的华氏温度值
*/
public static double celsiusToFahrenheit(double c) {
return c * 9.0 / 5.0 + 32.0;
}
/**
* 将华氏度转换为摄氏度
* @param f 浮点型,待转换的华氏温度值
* @return 浮点型,转换后的摄氏温度值
*/
public static double fahrenheitToCelsius(double f) {
return (f - 32.0) * 5.0 / 9.0;
}
/**
* 程序主方法,处理用户输入、解析并执行温度转换,是程序的入口逻辑
*/
public static void main(String[] args) {
// 创建Scanner对象,用于接收控制台用户输入
Scanner scanner = new Scanner(System.in);
// 提示用户输入温度与单位,与原Python程序提示语一致
System.out.print("请输入要转换的温度与单位(例如 36.6 C 或 97 F):");
// 获取用户输入并去除首尾空格,对应Python的strip()方法
String s = scanner.nextLine().trim();
// 处理输入为空的情况,直接退出程序
if (s.isEmpty()) {
System.out.println("输入为空,程序退出。");
scanner.close();
return;
}
// 按空格分割输入字符串,对应Python的split()方法
String[] parts = s.split(" ");
try {
// 解析第一部分为浮点型温度数值
double value = Double.parseDouble(parts[0]);
// 解析第二部分为单位,无单位时默认设为C,单位统一转大写
String unit = parts.length > 1 ? parts[1].toUpperCase() : "C";
// 摄氏度转华氏度,支持单位以C开头(兼容Cc等输入)
if (unit.startsWith("C")) {
double f = celsiusToFahrenheit(value);
// 格式化输出结果,保留2位小数,与原Python格式一致
System.out.printf("%.2f °C = %.2f °F%n", value, f);
}
// 华氏度转摄氏度,支持单位以F开头(兼容Ff等输入)
else if (unit.startsWith("F")) {
double c = fahrenheitToCelsius(value);
// 格式化输出结果,保留2位小数,与原Python格式一致
System.out.printf("%.2f °F = %.2f °C%n", value, c);
}
// 处理未知单位的情况
else {
System.out.println("未知单位,请使用 C 或 F。");
}
}
// 捕获数值解析失败、数组越界等所有异常,对应Python的Exception
catch (Exception e) {
System.out.println("输入解析失败,请按示例输入数值与单位,例如:36.6 C");
} finally {
// 关闭Scanner,释放资源
scanner.close();
}
}
}
Gitee - 基于 Git 的代码托管和研发协作平台
北京奥思研工智能科技有限公司版权所有
Git 大全
Git 命令学习
CopyCat 代码克隆检测
APP与插件下载
Gitee 封面人物
GVP 项目
Gitee 博客
Gitee 公益计划
Gitee 持续集成
OpenAPI
MCP Server
帮助文档
在线自助服务
更新日志
关于我们
加入我们
使用条款
意见建议
合作伙伴
技术交流QQ群
技术交流QQ群
微信服务号
微信服务号
client@oschina.cn
企业版在线使用400-606-0201
专业版私有部署
赖经理 13058176526
开放原子开源基金会
开放原子开源基金会
合作代码托管平台
违法和不良信息举报中心
违法和不良信息举报中心