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 开放原子开源基金会 开放原子开源基金会 合作代码托管平台 违法和不良信息举报中心 违法和不良信息举报中心 京