我正在尝试从控制台读取数据并找出它是什么类型的数据类型,然后打印一些语句,如果它与类型匹配。
我试过这样,但它仅适用于一个用例,有人可以纠正我需要的修改。
代码
package euler;
import java.io.*;
import java.util.*;
public class Read {
public static void main(String args[] ) throws Exception {
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
Object obj = br.readLine();
if(obj instanceof Integer)
{
System.out.println("This input of type Integer");
}
else if(obj instanceof Float)
{
System.out.println("This input of type float");
}
else if(obj instanceof String)
{
System.out.println("This input of type String");
}
else
{
System.out.println("This is something else");
}
}
}
答案 0 :(得分:2)
BufferedReader#readLine()
返回String
。您需要进行一些解析以确定该String是否代表有效的Integer
或Float
。
String input = br.readLine();
try {
Integer.parseInt(input);
System.out.println("Integer");
} catch(NumberFormatException nfe) { // not an int
try {
Float.parseFloat(input);
System.out.println("Float");
} catch(NumberFormatException nfe) { // not a float either
System.out.println("String");
}
}