Java 使用扫描仪读取用户';有没有办法告诉他刚才输入了什么样的数据?(字符、整型、字符串)
在本练习中,我被要求创建3个函数,它们相同,但用于不同类型的数据: 字符串Java 使用扫描仪读取用户';有没有办法告诉他刚才输入了什么样的数据?(字符、整型、字符串),java,Java,在本练习中,我被要求创建3个函数,它们相同,但用于不同类型的数据: 字符串 static String concatenamento(String a, String b, String c) { String d = a + b + c; return d; } Int static int sommainteri(int a, int b, int c) { int d = a + b + c; return d; } 双倍
static String concatenamento(String a, String b, String c) {
String d = a + b + c;
return d;
}
Int
static int sommainteri(int a, int b, int c) {
int d = a + b + c;
return d;
}
双倍
static double sommadouble(double a, double b, double c) {
double d = a + b + c;
return d;
}
我被要求不断地询问用户的输入,并且给定它的输入,程序必须(只要用相同的数据类型给出3个输入),选择一个函数并执行它。节目结束了
我不确定这是否清楚,所以我会尽力更好地解释。假设用户刚刚在一行中插入了三个整数(f.ex.3、4和9),程序必须理解如何使用为整数生成的函数
我不知道怎么做。感谢您的帮助:)签出扫描仪的
hasNextInt()
hasNextDouble()
简单示例用法:
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
if(s.hasNextInt()) {
int x = s.nextInt();
System.out.println("Is an Int: " + x);
} else if(s.hasNextDouble()) {
double x = s.nextDouble();
System.out.println("Is a Double:" + x);
} else {
String x = s.nextLine();
System.out.println("Is A String: " + x );
}
}
10.53
:这是一个双精度(10.53
)、一个字符串(“10.53”
)还是一个int(10
后接)“
后接53
)?据我所知,这对我来说是双精度的。不过,你的观点是正确的,可能会有不同的解释。我现在糊涂了@FilipeMadureira不要担心,如果使用hasNextDouble()
,扫描仪足够健壮,可以确定这是一个双精度。哇,让我理解一下,如果下一组数据可以读取为Int,hasNextInt()将返回true?这对我的问题来说太完美了!有没有一种方法可以对字符串使用这种方法呢?有一个警告:首先尝试使用double。您需要先尝试double,因为double的开头可以解释为int。@Arkadiy这是不正确的。Int可以解释为Double,但不能解释为Double。切换语句并使用1、2.5、3作为输入很容易证明…@FilipeMadureira字符串将是默认情况(如果不想将其他类型视为字符串,可以先检查它们)