您好我是java的新手,所以这可能是一个简单的解决方案,但我需要能够判断用户输入是字符串还是其他对象,这似乎不起作用:
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
Object name;
//have user enter their name
do{
System.out.println("Please enter your name: ");
name = sc.nextLine();
if(name instanceof String){
System.out.println(name);
break;
}else{
System.out.println("Enter a String!");
sc.next();
}
} while(true);
}
答案 0 :(得分:0)
Scanner#nextLine()
始终会返回String
。但是,如果要检查对象的类型,可以使用instanceof
运算符或getClass()
方法确定确切的类。
例如,someObject instanceof String
只有在null
且其类型为String
时才会返回true。
如果要将String
转换为另一种类型的对象(例如 - 数字),您应该阅读类型转换。例如,check this。
答案 1 :(得分:0)
归功于AlexR(此处:Parse String into Number), 您总是可以尝试使用一系列if / then来查看String值是否可以转换为数字样式(int,long等等)
private static Number parse(String str) {
Number number = null;
try {
number = Double.parseDouble(str);
} catch(NumberFormatException e) {
try {
number = Float.parseFloat(str);
} catch(NumberFormatException e1) {
try {
number = Long.parseLong(str);
} catch(NumberFormatException e2) {
try {
number = Integer.parseInt(str);
} catch(NumberFormatException e3) {
throw e3;
}
}
}
}
return number;
}