我收到来自用户的输入,可以是" 0"," 1"," 2" ..." F&# 34;,"?"等,并将其存储在字符串中。
如何确定字符串中存储的内容是否为1到8之间的值,而不使用8 if语句?
看起来像是:
String[] inputArray = new String[3];
if (inputArray[2] == "[1 through 8]")
{
...
}
答案 0 :(得分:3)
您可以尝试使用正则表达式
inputArray[2].matches("[0-9A-F]")
你也可以使用像
这样的东西inputArray[2].length()==1 && "0123456789ABCDEF".condains(inputArray[2])
或者通过char ch = inputArray[2].charAt(0)
阅读第一个字符(同时确保inputArray[2]
只包含一个字符)并查看它是否在指定范围内0-9
或A-F
像
('0'<=ch && ch<='9') || ('A'<=ch && ch<='F')
答案 1 :(得分:0)
正如@ user2864740已经建议的那样,使用正则表达式将是最佳解决方案。
http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
在这里,你有Regex的Java API,特别是Pattern
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
此示例显示了应如何使用模式。