如何确定String是否等于Java中的数字范围?

时间:2015-08-11 00:21:14

标签: java

我收到来自用户的输入,可以是" 0"," 1"," 2" ..." F&# 34;,"?"等,并将其存储在字符串中。

如何确定字符串中存储的内容是否为1到8之间的值,而不使用8 if语句?

看起来像是:

String[] inputArray = new String[3];
if (inputArray[2] == "[1 through 8]")
{
...
}

2 个答案:

答案 0 :(得分:3)

  1. 您可以尝试使用正则表达式

    inputArray[2].matches("[0-9A-F]")
    
  2. 你也可以使用像

    这样的东西
    inputArray[2].length()==1 && "0123456789ABCDEF".condains(inputArray[2])
    
  3. 或者通过char ch = inputArray[2].charAt(0)阅读第一个字符(同时确保inputArray[2]只包含一个字符)并查看它是否在指定范围内0-9A-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();

此示例显示了应如何使用模式。