检查字符串中是否包含任何非数字字符 - 不使用库 - Java

3
这对于熟悉正则表达式的人可能很清晰,但对我来说不是。
例如:
String onlyNumbers = "1233444";
String numbersAndDigits = "123344FF";

if (IS_ONLY_NUMBERS(onlyNumbers))
    return true;

if (IS_ONLY_NUMBERS(numbersAndDigits))
    return false;

建议?有没有一种方法在不导入库的情况下进行类似的检查?

3
yourString.matches("\\d+") 将解决问题。如果返回 false,则说明字符串中含有非数字字符。 - fge
2个回答

4

尝试使用String.matches("\\d+")。如果该语句返回false,则字符串中包含非数字字符。 \d表示字符必须是数字,+表示每个字符都必须是数字。

像这样:

String onlynumbers = "1233444";
String numbersanddigits = "123344FF";

System.out.println(onlynumbers.matches("\\d+")); // prints "true"
System.out.println(numbersanddigits.matches("\\d+")); // prints "false"

1
@JackScotti Stackoverflow不是竞争对手...哦...等等 :-) - dognose
我以为+表示匹配前面的标记1次或更多次。 - Voicu
没错,但我是根据上下文需要他了解的术语来解释给他听的。 - Tetramputechture

2
你可以尝试以下方法:
if (onlynumbers.matches("[0-9]+")
    return true;

if (numbersanddigits.matches("[0-9]+")
    return false;

此外,作为一种快捷方式,您可以使用\\d+而不是[0-9]+。选择哪种方法只是一个选择问题。

1
只是作为评论,您也可以使用快捷方式\d - Federico Piazza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接