比较String到int JAVA

时间:2017-04-07 03:25:29

标签: java string compare comparison jgrasp

我试图找出如何确保String变量没有数字作为字符串。我无法导入任何东西。

我试过了

NameArray[i].equalsIgnoreCase("")) || Integer.parseInt(NameArray[i]) >= 48 && Integer.parseInt(NameArray[i]) < 58

但它不起作用。

3 个答案:

答案 0 :(得分:0)

您可以尝试使用Integer.parseInt(string)将字符串转换为数字。 如果它给出一个例外而不是一个数字。

public boolean validNumber(String number) 
{
   try 
   {
     Integer.parseInt(number);
   } 
   catch (NumberFormatException e) 
   {
     return false;
   }
   return true;
}

答案 1 :(得分:0)

在Java 8+中,您可以使用IntStream生成范围([48, 58]),然后检查String是否等于NameArray。像,

if (IntStream.rangeClosed(48, 58).anyMatch(x -> String.valueOf(x)
        .equals(NameArray[i]))) {

}

你提到你想确保它不包含值 - 所以也许你真的想要noneMatch喜欢

if (IntStream.rangeClosed(48, 58).noneMatch(x -> String.valueOf(x)
        .equals(NameArray[i]))) {

}

答案 2 :(得分:0)

因此,您需要检查不包含任何数字的字符串。 尝试使用正则表达式.*[0-9].*,它将检查字符串中是否出现任何数字字符。

    String regex = ".*[0-9].*";

    // Returns true
    System.out.println("1".matches(regex));
    System.out.println("100".matches(regex));
    System.out.println("Stack 12 Overflow".matches(regex));
    System.out.println("aa123bb".matches(regex));

    // Returns false
    System.out.println("Regex".matches(regex));
    System.out.println("Java".matches(regex));