2014-10-29 127 views
2

這對熟悉正則表達式的人可能很清楚,但我不知道。檢查字符串是否包含任何非數字字符 - 沒有庫 - Java

例(讓我澄清:這是一個例子):

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

if (onlynumbers IS_ONLY_NUMBERS()) 
    return true; 

if (numbersanddigits IS_ONLY_NUMBERS()) 
    return false; 

建議?有沒有辦法在不導入庫的情況下做類似的檢查?

+3

'yourString.matches( 「\\ d +」)'會做的伎倆。如果這是錯誤的,你的字符串中有非數字。 – fge 2014-10-29 20:08:53

回答

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

最清晰的答案。你贏了。 – Jack 2014-10-29 20:29:42

+1

@JackScotti Stackoverflow是沒有競爭...哦...等待:-) – dognose 2014-10-29 20:38:42

+0

我雖然'+'意味着匹配前面的令牌1次或更多次。 – Voicu 2014-10-29 20:57:04

2

你可以嘗試:

if (onlynumbers.matches("[0-9]+") 
    return true; 

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

此外,作爲快捷方式,你可以使用\\d+而不是[0-9]+。選擇哪一個只是一個選擇問題。

+1

正如評論,你也可以使用快捷方式'\ d' – 2014-10-29 20:27:37

相關問題