我正在尝试弄清楚如何确保字符串变量没有数字作为字符串。我无法导入任何东西。
我试过了
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));