我有鸡肉和鸡蛋的问题。我用它来动态打字(python)所以如果这是一个基本的东西,请对我温柔。
我有扫描仪,但我想允许用户输入字符串或整数(1或' option1')。因为它是用户输入,所以我不知道结果类型(int或字符串)。我需要从扫描程序获取用户输入,将其分配给变量,然后将该变量传递给重载方法。
问题是我需要声明变量类型。但是,它也可以。我该如何处理?
修改
为了澄清,我正在考虑做这样的事情(下面是伪代码):
public static float methodname(int choice){
//some logic here
}
public static float methodname(String choice){
//some logic here
}
Scanner input = new Scanner( System.in );
choice = input.nextLine();
System.out.println(methodname(choice));
我遇到的问题是“选择”的声明。我该怎么做?
答案 0 :(得分:1)
您可以将其作为String
并尝试将其转换为int
。如果转换没有问题,您可以使用int
版本,否则请使用String
版本。
String stringValue = ...
try {
// try to convert stringValue to an int
int intValue = Integer.parseInt(stringValue);
// If conversion is possible you can call your method with the int
call(intValue);
} catch (NumberFormatException e) {
// If conversion can't happen call using the string
call(stringValue);
}
答案 1 :(得分:1)
将输入值作为String,使用
将其转换为整数String number = "1";
int result = Integer.parseInt(number);
如果它解析,那么你可以继续使用它作为数字。如果失败则会抛出NumberFormatException。所以你可以捕获异常并继续使用字符串。
try{
String number = "option1";
int result = Integer.parseInt(number);
// proceed with int logic
} catch(NumberFormatException e){
// handle error and proceed with string logic
}