2013-04-14 119 views
-5

我試圖驗證字段名稱是空的,它是工作字符串爲空

while(name.isEmpty()||!name.matches("^([A-Z*a-z]*(\\s))+[A-Z*a-z]*$")) 

當我嘗試驗證字段數爲空時它給了一個錯誤。

while (number.charAt(0) != '0' || number.length() < 4 || !number.matches("^[0-9]*") || number.isEmpty()) 

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0 
    at java.lang.String.charAt(Unknown Source) 
+2

空字符串' 「」'沒有任何字符,所以'的charAt(0)'將拋出'StringIndexOutOfBoundsException'。 – Pshemo

+0

如何驗證字符串編號? – user1831131

回答

1

你得到StringIndexOutOfBoundsException因爲在你的

while (number.charAt(0) != '0' || number.length() < 4 || !number.matches("^[0-9]*") || number.isEmpty()) 

條件第一件事就是number.charAt(0)可以拋出異常,如果字符串爲空""。要擺脫此問題,請在number.charAt(0) != '0'之前移動number.isEmpty()


這是爲了驗證以0開始的電話號碼,並具有4個數字的最小長度。

嘗試這種方式

while (!number.matches("0[0-9]{3,}")) 
+0

這是驗證一個電話號碼,以0開頭,最小長度爲4個數字。 – user1831131

+0

@ user1831131檢查我的更新回答 – Pshemo

+0

我給你+1了。 d: –

1

編輯:這應該工作:

while(!number.matches("0[0-9]{3,}")) 
+0

我試圖,當我點擊輸入號碼字段沒有寫任何信息時,它再次要求我介紹號碼,因爲它發生在名稱字段。 – user1831131

+0

@user你允許哪些號碼?你允許負數嗎? –

+0

這是驗證以0開頭的電話號碼,其最小長度爲4位數。 – user1831131