我试图在java中设计代码以接受出现的任何数据类型。例如,如果我问用户一个问题,不管他们输入的是字符串、双精度还是整数,它都会被接受并输入到一个变量中。我知道我可以在python中做到这一点,因为你不需要预先定义变量的数据类型。我能在Java中做到这一点吗?
您可以使用Scanner.next(Pattern)
方法来测试您的输入是否匹配特定的内容。
https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Scanner.html next (java.util.regex.Pattern)
您也可以用if
语句调用hasNextX()
来测试输入是否匹配某些类型。这是我在研究一个不同的SO问题时写的一个简单的测试。这段代码使用扫描器来测试输入是字符串还是双精度类型,并进行适当的解析。
String test = " test test < 1.234 2.234 3.456 > more ";
Scanner scan = new Scanner( test );
while( scan.hasNext() ) {
if( scan.hasNextDouble() ) {
double i = scan.nextDouble();
System.out.println( "Double: " + i );
}
else {
String s = scan.next();
System.out.println( "String: " + s );
}
}