从键盘分别输入通过空格分割的整型(int)、浮点型(double)、字符型(String)、布尔型(boolean),根据读取的内容判断他们的类型并将他们解析为正确的对象,并都放到一个数组中。输出各个对象的类型
时间: 2024-09-28 21:08:56 浏览: 34
当你从键盘输入并以空格分隔这些不同类型的数据时,可以按照以下步骤进行处理:
1. **数据收集**:
首先,创建一个动态数组,比如`ArrayList`,它可以存储不同类型的对象。
2. **输入循环**:
使用`Scanner`类获取用户的输入,逐个读取每个值,直到遇到非数字字符为止。
3. **类型判断与转换**:
- 对于整数(`int`):使用`Integer.parseInt()`尝试将其转换为整数。如果成功,将结果添加到数组中。
- 对于浮点数(`double`):同样地,使用`Double.parseDouble()`,如果转换成功则添加。
- 对于字符型(`String`):如果当前的字符串不是数字,则直接作为字符串添加。
- 对于布尔型(`boolean`):通常在实际编程中不会单独输入布尔值,但如果你需要,你可以将"true"和"false"分别转换为`Boolean.TRUE`和`Boolean.FALSE`。
4. **类型确认**:
添加完成后,遍历数组,检查每个元素的类型。对于`Integer`、`Double`等包装类的对象,可以使用`instanceof`关键字确认其原始类型。
5. **输出结果**:
输出各个对象的类型以及对应的值。
以下是示例代码片段:
```java
import java.util.ArrayList;
import java.util.Scanner;
public class TypeParser {
public static void main(String[] args) {
ArrayList<Object> array = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
String input = "";
while (scanner.hasNext()) {
input = scanner.next();
if (input.matches("\\d+")) { // 整数
int intValue = Integer.parseInt(input);
array.add(intValue);
} else if (input.matches("\\d+\\.\\d*")) { // 浮点数
double doubleValue = Double.parseDouble(input);
array.add(doubleValue);
} else { // 字符串或其他非数字字符
array.add(input);
}
}
for (Object obj : array) {
System.out.println("Type: " + obj.getClass().getSimpleName());
if (obj instanceof Integer || obj instanceof Double) {
System.out.println("Value: " + obj);
} else if (obj instanceof Boolean) {
System.out.println("Value: " + ((Boolean) obj).toString());
} else {
System.out.println("Value: " + obj.toString());
}
}
}
}
```
阅读全文