我试图找出如何确保String变量没有数字作为字符串。我无法导入任何东西。
我试过了
NameArray[i].equalsIgnoreCase("")) || Integer.parseInt(NameArray[i]) >= 48 && Integer.parseInt(NameArray[i]) < 58
但它不起作用。
答案 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));