java设计一个程序,其功能是从命令行输入浮点数数字符串,再将该整数字符串转换为整数,输入的数据可能具有以下格式: 123.45 123. 45 123x yz4.56 对可能会发生异常进行捕获和处理。
时间: 2023-04-09 08:00:36 浏览: 209
可以回答这个问题。以下是Java程序的实现:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个浮点数字符串:");
String input = scanner.nextLine();
try {
double num = Double.parseDouble(input);
int integer = (int) num;
System.out.println("转换后的整数为:" + integer);
} catch (NumberFormatException e) {
System.out.println("输入的字符串不是一个合法的浮点数!");
}
}
}
该程序首先从命令行输入一个浮点数字符串,然后使用Double.parseDouble()方法将其转换为double类型的数值。接着将该数值强制转换为int类型,即可得到该浮点数的整数部分。如果输入的字符串不是一个合法的浮点数,将会抛出NumberFormatException异常,程序会捕获该异常并输出错误信息。
相关问题
用java编写一个程序“利用命令行参数String[] args 实现一命令行整数计算器,实现整数间加、减、乘、除四种运算,其中除法运算结果如能整除,以整数形式输出,否则,以浮点数形式输出,保留2位小数”
好的,这是一个很好的编程问题。以下是一个可能的解决方案:
```java
public class CommandLineCalculator {
public static void main(String[] args) {
if (args.length != 3) {
System.out.println("Usage: CommandLineCalculator <operand1> <operator> <operand2>");
return;
}
int operand1 = Integer.parseInt(args[0]);
int operand2 = Integer.parseInt(args[2]);
String operator = args[1];
double result;
switch (operator) {
case "+":
result = operand1 + operand2;
break;
case "-":
result = operand1 - operand2;
break;
case "*":
result = operand1 * operand2;
break;
case "/":
if (operand2 == 0) {
System.out.println("Error: division by zero");
return;
}
result = (double) operand1 / operand2;
if (result == (int) result) {
System.out.println((int) result);
} else {
System.out.printf("%.2f", result);
}
return;
default:
System.out.println("Error: invalid operator");
return;
}
System.out.println(result);
}
}
```
这个程序首先检查命令行参数的数量是否正确,然后将操作数和运算符从字符串转换为整数和字符串。然后,它使用 switch 语句根据运算符执行相应的操作,并在必要时将结果输出为整数或浮点数。如果除数为零,则输出错误消息。
4. 接收从键盘输入的字符串格式的年龄,分数和入学时间,转换为整数、浮点数、日期类型,并在控制台输出java
你可以使用Java的Scanner类来接收从键盘输入的字符串,并使用相应的转换方法将其转换为整数、浮点数和日期类型。以下是一个示例代码:
```java
import java.util.Scanner;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入年龄:");
String ageStr = scanner.nextLine();
int age = Integer.parseInt(ageStr);
System.out.print("请输入分数:");
String scoreStr = scanner.nextLine();
double score = Double.parseDouble(scoreStr);
System.out.print("请输入入学时间(格式为yyyy-MM-dd):");
String dateStr = scanner.nextLine();
Date date = null;
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
date = dateFormat.parse(dateStr);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("年龄:" + age);
System.out.println("分数:" + score);
System.out.println("入学时间:" + date);
}
}
```
你可以将上述代码保存为`Main.java`文件,然后通过命令行编译和运行该文件。在控制台输入年龄、分数和入学时间后,程序将会将其转换为相应的类型并输出。
注意:请确保输入的字符串符合相应的格式,否则可能会导致转换失败或出现异常。在上述示例中,入学时间的格式为`yyyy-MM-dd`。
阅读全文