2016-11-25 57 views
0

我有一个扫描仪运行的地方,用户可以输入字符串或整数。 只有用户可以输入的特定字符,例如a,e,u,r,数字可以是任何内容。如果用户输入一个数字,则检查运行,但失败。Java扫描程序检查字符串或int

String temp = scanner.next(); 
String[] validToken = {"x","e","u","r","+","-","/","*",}; 
for (String validToken1 : validToken) { 
    if (temp.equals(validToken1) || temp.equals("\\d+")) { 
     tokenCheck = true; 
    } 
} 
+0

难道你不能只使用try catch吗? – SaggingRufus

+0

使用'Set'而不是'String []'可以做到这一点:'validToken.contains(temp)'和@iNam一样,如果你想再次检查'String',正则表达式使用'匹配(....)' – Titus

回答

2

等于matchesmatches用于检查字符串是否与特定的正则表达式匹配。

if (temp.equals(validToken1) || temp.matches("\\d+")) { 
        tokenCheck = true; 
       } 
2

当你与matches替换equals它应该是固定的,因为等于要检查如果字符串字面\d+,这不是正则表达式。