(3) 运用两种包装类(Integer和Double),计算这两个数的和(int数据类型);(注意:把字符串转换成int和double类型)
时间: 2024-09-11 11:06:55 浏览: 60
在Java中,你可以使用Integer和Double这两个包装类来进行数值类型的转换,并计算它们的和,即使原始输入可能是字符串形式。假设我们有一个字符串表示的整数和另一个字符串表示的双精度浮点数,可以按照以下步骤操作:
```java
// 假设输入的字符串分别为 strInt 和 strDouble
String strInt = "123";
String strDouble = "456.78";
// 将字符串转换为 Integer 和 Double 类型
int intValue = Integer.parseInt(strInt);
double doubleValue = Double.parseDouble(strDouble);
// 计算两个值的和(将double强制转换为int类型,可能会有精度损失)
int sum = intValue + (int)doubleValue;
System.out.println("Sum: " + sum);
```
这里需要注意的是,当将double转为int时,会丢失小数部分的信息。如果需要精确相加,你应该直接将两个double类型的值相加。
相关问题
接收从键盘输入的字符串格式的年龄,分数和入学时间,转换为整数、浮点数、日期类型,并在控制台输出。( 提示:使用包装类Integer、Double和日期转换类DateFormat实现)
好的,以下是Java代码示例:
```
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入年龄:");
String ageStr = scanner.nextLine();
System.out.print("请输入分数:");
String scoreStr = scanner.nextLine();
System.out.print("请输入入学时间(格式为yyyy-MM-dd):");
String dateStr = scanner.nextLine();
// 将字符串转换为整数类型
int age = Integer.parseInt(ageStr);
// 将字符串转换为浮点数类型
double score = Double.parseDouble(scoreStr);
// 将字符串转换为日期类型
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = dateFormat.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
// 输出转换后的结果
System.out.println("年龄:" + age);
System.out.println("分数:" + score);
System.out.println("入学时间:" + dateFormat.format(date));
}
}
```
运行程序后,会提示用户输入年龄、分数和入学时间,用户输入后程序会将输入的字符串转换为整数、浮点数和日期类型,并输出转换后的结果。
编写一个方法,将两个数置换,要求方法的逻辑关系与被置换的两个数据对象的类型无关。 输入 两个数 提示:用next()方法输入泛型数据 输出 置换后的两个数 样例输入 Copy 111 222 样例输出 Copy 222 111 提示 输出的两个数之间有两个空格。
这个需求可以通过创建一个通用的方法来实现,利用泛型来处理任意类型的数值。在Java中,你可以使用Object作为基础类型,然后通过boxing和unboxing机制来操作数值。下面是一个简单的Java方法示例:
```java
public class SwapMethod {
public static <T extends Number> void swap(T a, T b) {
// 将原始值转换为它们的包装类对象
Object objA = a;
Object objB = b;
// 交换对象
objA = b;
objB = a;
// 再将包装类对象转换回原类型并返回
a = (T)objA;
b = (T)objB;
// 输出结果,这里假设toString可以得到数值表示
System.out.println("Swap后的数:" + a + " " + b);
}
public static void main(String[] args) {
int num1 = 111;
int num2 = 222;
swap(num1, num2); // 样例输入:Copy 111 222
// 对其他类型的Number子类也可以这样使用
double doubleNum1 = 3.14;
double doubleNum2 = 2.71;
swap(doubleNum1, doubleNum2);
}
}
```
在这个`swap`方法中,我们首先把原始数值转换成它们对应的包装类对象(如Integer或Double),然后直接交换这两个包装类对象。最后再把它们转换回原来的数值类型,并打印出结果。
阅读全文