Java扫描程序检查字符串或int

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

我有一个扫描器在运行,用户可以输入字符串或整数。 用户只能输入特定字符,如a、e、u、r,数字可以是任何数字。如果是字母,检查将运行,但如果用户输入数字,检查将失败

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
使用
匹配(…)