From aa5f4341698b0567523dba940fc84e91ceace9bf Mon Sep 17 00:00:00 2001 From: SunWenxuan <3148628230@qq.com> Date: Sun, 8 Mar 2026 22:43:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20'w1'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- w1/TemperatureConverter.java | 72 +++++++++++++++++++++++ w1/TemperatureConverter.rtf | 108 +++++++++++++++++++++++++++++++++++ 2 files changed, 180 insertions(+) create mode 100644 w1/TemperatureConverter.java create mode 100644 w1/TemperatureConverter.rtf diff --git a/w1/TemperatureConverter.java b/w1/TemperatureConverter.java new file mode 100644 index 0000000..658eef6 --- /dev/null +++ b/w1/TemperatureConverter.java @@ -0,0 +1,72 @@ +{\rtf1\ansi\ansicpg936\cocoartf2822 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0 +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f0\fs24 \cf0 import java.util.Scanner;\ +\ +/**\ + * \uc0\u25903 \u25345 \u25668 \u27663 \u24230 (C)\u19982 \u21326 \u27663 \u24230 (F)\u20043 \u38388 \u20114 \u36716 \ + */\ +public class TemperatureConverter \{\ +\ + /**\ + * \uc0\u23558 \u25668 \u27663 \u24230 \u36716 \u25442 \u20026 \u21326 \u27663 \u24230 \ + * @param c \uc0\u25668 \u27663 \u28201 \u24230 \ + * @return \uc0\u23545 \u24212 \u30340 \u21326 \u27663 \u28201 \u24230 \ + */\ + public static double celsiusToFahrenheit(double c) \{\ + return c * 9.0 / 5.0 + 32.0;\ + \}\ +\ + /**\ + * \uc0\u23558 \u21326 \u27663 \u24230 \u36716 \u25442 \u20026 \u25668 \u27663 \u24230 \ + * @param f \uc0\u21326 \u27663 \u28201 \u24230 \ + * @return \uc0\u23545 \u24212 \u30340 \u25668 \u27663 \u28201 \u24230 \ + */\ + public static double fahrenheitToCelsius(double f) \{\ + return (f - 32.0) * 5.0 / 9.0;\ + \}\ +\ + public static void main(String[] args) \{\ + Scanner scanner = new Scanner(System.in);\ +\ + // \uc0\u25552 \u31034 \u29992 \u25143 \u36755 \u20837 \u65292 \u26684 \u24335 \u31034 \u20363 : "36.6 C" \u25110 "97 F"\ + System.out.print("\uc0\u35831 \u36755 \u20837 \u35201 \u36716 \u25442 \u30340 \u28201 \u24230 \u19982 \u21333 \u20301 \u65288 \u20363 \u22914 36.6 C \u25110 97 F\u65289 : ");\ + String s = scanner.nextLine().trim();\ +\ + if (s.isEmpty()) \{\ + System.out.println("\uc0\u36755 \u20837 \u20026 \u31354 \u65292 \u31243 \u24207 \u36864 \u20986 \u12290 ");\ + return;\ + \}\ +\ + String[] parts = s.split("\\\\s+"); // \uc0\u25353 \u20219 \u24847 \u31354 \u30333 \u23383 \u31526 \u20998 \u21106 \ + double value;\ + String unit;\ +\ + try \{\ + // \uc0\u20801 \u35768 \u29992 \u25143 \u36755 \u20837 \u20004 \u20010 \u37096 \u20998 : \u25968 \u20540 \u19982 \u21333 \u20301 \ + value = Double.parseDouble(parts[0]);\ + unit = (parts.length > 1) ? parts[1].toUpperCase() : "C";\ + \} catch (Exception e) \{\ + System.out.println("\uc0\u36755 \u20837 \u35299 \u26512 \u22833 \u36133 \u65292 \u35831 \u25353 \u31034 \u20363 \u36755 \u20837 \u25968 \u20540 \u19982 \u21333 \u20301 \u65292 \u20363 \u22914 : 36.6 C");\ + return;\ + \}\ +\ + if (unit.startsWith("C")) \{\ + // \uc0\u20174 \u25668 \u27663 \u24230 \u36716 \u25442 \u20026 \u21326 \u27663 \u24230 \ + double f = celsiusToFahrenheit(value);\ + System.out.printf("%.1f \'b0C = %.2f \'b0F%n", value, f);\ + \} else if (unit.startsWith("F")) \{\ + // \uc0\u20174 \u21326 \u27663 \u24230 \u36716 \u25442 \u20026 \u25668 \u27663 \u24230 \ + double c = fahrenheitToCelsius(value);\ + System.out.printf("%.1f \'b0F = %.2f \'b0C%n", value, c);\ + \} else \{\ + System.out.println("\uc0\u26410 \u30693 \u21333 \u20301 \u65292 \u35831 \u20351 \u29992 C \u25110 F\u12290 ");\ + \}\ +\ + scanner.close();\ + \}\ +\}} \ No newline at end of file diff --git a/w1/TemperatureConverter.rtf b/w1/TemperatureConverter.rtf new file mode 100644 index 0000000..6786b7f --- /dev/null +++ b/w1/TemperatureConverter.rtf @@ -0,0 +1,108 @@ +{\rtf1\ansi\ansicpg936\cocoartf2822 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0 +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 + +\f0\fs24 \cf0 import java.io.BufferedReader;\ +import java.io.FileReader;\ +import java.io.File;\ +import java.util.Scanner;\ +\ +/**\ + * \uc0\u28201 \u24230 \u36716 \u25442 \u22120 \u31243 \u24207 \u65288 Java\u65289 \ + * \uc0\u31561 \u25928 \u31227 \u26893 Python\u28201 \u24230 \u36716 \u25442 \u31243 \u24207 \u65292 \u25903 \u25345 \u25668 \u27663 /\u21326 \u27663 \u20114 \u36716 \ + * \uc0\u39069 \u22806 \u25903 \u25345 \u65306 \u21629 \u20196 \u34892 \u21442 \u25968 \u27169 \u24335 \u12289 \u25991 \u20214 \u25209 \u37327 \u36716 \u25442 \u27169 \u24335 \ + */\ +public class TemperatureConverter \{\ +\ + /**\ + * \uc0\u23558 \u25668 \u27663 \u24230 \u36716 \u25442 \u20026 \u21326 \u27663 \u24230 \ + * @param c \uc0\u36755 \u20837 \u30340 \u25668 \u27663 \u28201 \u24230 \u65292 \u25968 \u25454 \u31867 \u22411 \u20026 \u21452 \u31934 \u24230 \u28014 \u28857 \u22411 \ + * @return \uc0\u36716 \u25442 \u21518 \u30340 \u21326 \u27663 \u28201 \u24230 \u65292 \u21452 \u31934 \u24230 \u28014 \u28857 \u22411 \ + */\ + public static double celsiusToFahrenheit(double c) \{\ + return c * 9.0 / 5.0 + 32.0;\ + \}\ +\ + /**\ + * \uc0\u23558 \u21326 \u27663 \u24230 \u36716 \u25442 \u20026 \u25668 \u27663 \u24230 \ + * @param f \uc0\u36755 \u20837 \u30340 \u21326 \u27663 \u28201 \u24230 \u65292 \u25968 \u25454 \u31867 \u22411 \u20026 \u21452 \u31934 \u24230 \u28014 \u28857 \u22411 \ + * @return \uc0\u36716 \u25442 \u21518 \u30340 \u25668 \u27663 \u28201 \u24230 \u65292 \u21452 \u31934 \u24230 \u28014 \u28857 \u22411 \ + */\ + public static double fahrenheitToCelsius(double f) \{\ + return (f - 32.0) * 5.0 / 9.0;\ + \}\ +\ + /**\ + * \uc0\u25209 \u37327 \u36716 \u25442 \u65306 \u20174 \u25991 \u20214 \u35835 \u21462 \u22810 \u34892 \u28201 \u24230 \u25968 \u25454 \u24182 \u23436 \u25104 \u36716 \u25442 \u65288 \u21152 \u20998 \u39033 \u65289 \ + * @param filename \uc0\u23384 \u20648 \u28201 \u24230 \u25968 \u25454 \u30340 \u25991 \u20214 \u21517 \u65292 \u23383 \u31526 \u20018 \u31867 \u22411 \ + */\ + public static void batchConvert(String filename) \{\ + try (BufferedReader br = new BufferedReader(new FileReader(filename))) \{\ + String line;\ + while ((line = br.readLine()) != null) \{\ + convertAndPrint(line.trim()); // \uc0\u35843 \u29992 \u32479 \u19968 \u36716 \u25442 \u26041 \u27861 \ + \}\ + \} catch (Exception e) \{\ + System.out.println("\uc0\u25991 \u20214 \u35835 \u21462 \u22833 \u36133 \u65306 " + e.getMessage());\ + \}\ + \}\ +\ + /**\ + * \uc0\u32479 \u19968 \u36716 \u25442 \u36923 \u36753 \u65306 \u35299 \u26512 \u36755 \u20837 \u24182 \u36755 \u20986 \u32467 \u26524 \u65288 \u22797 \u29992 \u26680 \u24515 \u36923 \u36753 \u65289 \ + * @param input \uc0\u24453 \u35299 \u26512 \u30340 \u28201 \u24230 \u19982 \u21333 \u20301 \u23383 \u31526 \u20018 \u65292 \u22914 "36.6 C"\ + */\ + public static void convertAndPrint(String input) \{\ + if (input.isEmpty()) \{\ + System.out.println("\uc0\u36755 \u20837 \u20026 \u31354 \u65292 \u36339 \u36807 \u36716 \u25442 \u12290 ");\ + return;\ + \}\ + String[] parts = input.split("\\\\s+");\ + try \{\ + double value = Double.parseDouble(parts[0]);\ + // \uc0\u19982 \u21407 Python\u36923 \u36753 \u19968 \u33268 \u65306 \u26410 \u36755 \u20837 \u21333 \u20301 \u26102 \u40664 \u35748 \u25353 \u25668 \u27663 \u24230 \u22788 \u29702 \ + String unit = parts.length > 1 ? parts[1].toUpperCase() : "C";\ + \ + if (unit.startsWith("C")) \{\ + double f = celsiusToFahrenheit(value);\ + System.out.printf("%.2f \'b0C = %.2f \'b0F%n", value, f);\ + \} else if (unit.startsWith("F")) \{\ + double c = fahrenheitToCelsius(value);\ + System.out.printf("%.2f \'b0F = %.2f \'b0C%n", value, c);\ + \} else \{\ + System.out.println("\uc0\u26410 \u30693 \u21333 \u20301 \u65292 \u35831 \u20351 \u29992 C \u25110 F\u12290 ");\ + \}\ + \} catch (Exception e) \{\ + System.out.println("\uc0\u36755 \u20837 \u35299 \u26512 \u22833 \u36133 \u65292 \u35831 \u25353 \u31034 \u20363 \u36755 \u20837 \u65288 \u22914 36.6 C\u65289 \u12290 ");\ + \}\ + \}\ +\ + /**\ + * \uc0\u31243 \u24207 \u20027 \u20837 \u21475 \u65306 \u25972 \u21512 \u19977 \u31181 \u36816 \u34892 \u27169 \u24335 \ + * @param args \uc0\u21629 \u20196 \u34892 \u21442 \u25968 \u65292 \u25903 \u25345 \u26080 \u21442 \u25968 \u65288 \u20132 \u20114 \u24335 \u65289 \u12289 \u21442 \u25968 \u20026 \u28201 \u24230 \u21333 \u20301 \u65288 \u21629 \u20196 \u34892 \u27169 \u24335 \u65289 \u12289 \u21442 \u25968 \u20026 \u25991 \u20214 \u21517 \u65288 \u25209 \u37327 \u27169 \u24335 \u65289 \ + */\ + public static void main(String[] args) \{\ + // \uc0\u27169 \u24335 1\u65306 \u25209 \u37327 \u25991 \u20214 \u36716 \u25442 \u65288 \u21152 \u20998 \u39033 \u65289 - \u20165 1\u20010 \u21442 \u25968 \u19988 \u20026 \u25991 \u20214 \u26102 \u35302 \u21457 \ + if (args.length == 1 && new File(args[0]).exists()) \{\ + batchConvert(args[0]);\ + return;\ + \}\ +\ + Scanner scanner = new Scanner(System.in);\ + String input;\ +\ + // \uc0\u27169 \u24335 2\u65306 \u21629 \u20196 \u34892 \u21442 \u25968 \u27169 \u24335 \u65288 \u21152 \u20998 \u39033 \u65289 - \u22810 \u21442 \u25968 \u26102 \u30452 \u25509 \u25340 \u25509 \u20026 \u36755 \u20837 \ + if (args.length > 0) \{\ + input = String.join(" ", args);\ + \} else \{\ + // \uc0\u27169 \u24335 3\u65306 \u20132 \u20114 \u24335 \u36755 \u20837 \u65288 \u21407 Python\u26680 \u24515 \u21151 \u33021 \u65292 \u24517 \u20570 \u65289 \ + System.out.print("\uc0\u35831 \u36755 \u20837 \u35201 \u36716 \u25442 \u30340 \u28201 \u24230 \u19982 \u21333 \u20301 \u65288 \u20363 \u22914 36.6 C \u25110 97 F\u65289 \u65306 ");\ + input = scanner.nextLine().trim();\ + \}\ +\ + convertAndPrint(input); // \uc0\u25191 \u34892 \u26680 \u24515 \u36716 \u25442 \ + scanner.close();\ + \}\ +\}} \ No newline at end of file