Java扫描程序检查字符串或int
我有一个扫描器在运行,用户可以输入字符串或整数。 用户只能输入特定字符,如a、e、u、r,数字可以是任何数字。如果是字母,检查将运行,但如果用户输入数字,检查将失败Java扫描程序检查字符串或int,java,java.util.scanner,Java,Java.util.scanner,我有一个扫描器在运行,用户可以输入字符串或整数。 用户只能输入特定字符,如a、e、u、r,数字可以是任何数字。如果是字母,检查将运行,但如果用户输入数字,检查将失败 String temp = scanner.next(); String[] validToken = {"x","e","u","r","+","-","/","*",}; for (String validToken1 : validToken) { if (temp.equals(validToken1) || tem
String temp = scanner.next();
String[] validToken = {"x","e","u","r","+","-","/","*",};
for (String validToken1 : validToken) {
if (temp.equals(validToken1) || temp.equals("\\d+")) {
tokenCheck = true;
}
}
当您用
匹配项
替换equals
时,它应该被修复,因为用equals检查字符串是否是字面上的\d+
,它不是正则表达式。当您用匹配项
替换equals
时,它应该被修复,因为使用equals时,您要检查字符串是否是字面上的\d+
,它不是正则表达式。更改equals以匹配matches
用于检查字符串是否与特定正则表达式匹配
if (temp.equals(validToken1) || temp.matches("\\d+")) {
tokenCheck = true;
}
更改等于匹配
matches
用于检查字符串是否与特定正则表达式匹配
if (temp.equals(validToken1) || temp.matches("\\d+")) {
tokenCheck = true;
}
你就不能用try-catch吗?用Set
而不是String[]
可以让你做到这一点:validToken.contains(temp)
和@iNam所说的一样,如果你想再次检查String
与正则表达式的匹配(…)
你就不能用try-catch吗?用Set
代替String[]
可以让你做到这一点:validToken.contains(temp)
和@iNam说的一样,如果你想在正则表达式中再次检查String
使用匹配(…)