将字符串与 int JAVA 进行比较



我正在尝试弄清楚如何确保字符串变量没有数字作为字符串。我无法导入任何东西。

我试过了

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

但它没有用。

在 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]))) {
}

您可以尝试使用 Integer.parseInt(string( 将字符串转换为数字。如果它给出异常,则它不是一个数字。

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

因此,您需要检查不包含任何数字的字符串。尝试使用正则表达式.*[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));

相关内容

  • 没有找到相关文章

最新更新