2.6 KiB
Java源码
import java.util.Scanner;
public class TemperatureConverter {
public static double celsiusToFahrenheit(double c){
return c*9.0/5.0+32.0;
}
public static double fahrenheitToCelsius(double f){
return(f-32.0)*5.0/9.0;
}
public static void main(String[] args){
if (args.length>=2){
try{
double value=Double.parseDouble(args[0]);
String unit=args[1].toUpperCase();
if(unit.startsWith("C")){
double f=celsiusToFahrenheit(value);
System.out.printf("%.2f℃=%.2f℉%n",value,f);
}else if (unit.startsWith("F")){
double c=fahrenheitToCelsius(value);
System.out.printf("%.2f℉=%.2f℃%n",value,c);
}else {
System.out.println("未知单位,请使用 C 或 F。");
}
}catch(Exception e){
System.out.println("命令行解析失败,请按示例输入,例如:java TemperatureConverter 36.6 C");
}
}else{
mainLogic();
}
}
public static void mainLogic(){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入要转换的温度与单位(例如 36.6 C 或 97 F):");
String s=scanner.nextLine().trim();
if (s.isEmpty()){
System.out.println("'输入为空,程序退出。");
return;
}
String[] parts=s.split("\\s+");
try{
double value=Double.parseDouble(parts[0]);
String unit=parts.length>1? parts[1].toUpperCase():"C";
if (unit.startsWith("C")){
double f=celsiusToFahrenheit(value);
System.out.printf("%.2f℃=%.2f℉%n",value,f);
}else if(unit.startsWith("F")){
double c=fahrenheitToCelsius(value);
System.out.printf("%.2f℉=%.2f℃%n",value,c);
}else{
System.out.println("未知单位,请使用 C 或 F。");
}
}catch(Exception e){
System.out.println("输入解析失败,请按示例输入数值与单位,例如:36.6 C");
}finally{
scanner.close();
}
}
}