我希望檢查字符串是否包含指定位置中的字母或數字。檢查字符串中的指定位置是否包含字母或數字
這裏的問題:
我具有長度爲2的輸入字符串的字符串的形式爲「A1」。 我正在爲這些類型的字符串進行驗證。
要求:
- 在索引位置0處的字母必須是字母中的一個:A,B,C,d,E,F,G,H
- 在索引的數量/數字位置1必須是其中一個數字:1,2,3,4,5,6,7,8
謝謝!
我希望檢查字符串是否包含指定位置中的字母或數字。檢查字符串中的指定位置是否包含字母或數字
這裏的問題:
我具有長度爲2的輸入字符串的字符串的形式爲「A1」。 我正在爲這些類型的字符串進行驗證。
要求:
謝謝!
嘗試正則表達式
str.matches("[a-h][1-8]");
正則表達式
input.matches("^[abcdefgh][12345678]$");
編輯:
這相當於:
input.matches("^[a-h][1-8]$");
我發現'^ [ah] [1-8] $'更容易 – toniedzwiedz 2013-05-06 13:58:25
您可以使用''^ [ah] [1-8] $「'作爲模式,不必指定所有的字母或數字應該匹配 – DaGLiMiOuX 2013-05-06 13:58:44
是的,我也會......但我也考慮到了「新手因素」。 – rolfl 2013-05-06 13:58:56
答案很簡單:提取出的第n個字母,並檢查它是否是一個數字或字母:
isaletter(mystring.charAt(0));
isanumber(mystring.charAt(1));
靈活的答案:使用正則表達式。您需要了解一些關於它們的內容,但它們提供了很大的靈活性。
將其轉換爲字符數組, 「A1」 .toCharArray()
比較的char [0]你的領域 'A' .... 'H',你可以使用==現在,它的一個基本,如在字符[0] =='a'中。
您可以對chars [1] =='1'....等等做同樣的事情。
如果你這樣做,你必須比較字符值。
速度,記憶或效率是否重要?看起來你應該製作兩個列表,循環它們(嵌套),然後測試連接列表值是否爲==。像((myList(indexOuter)+ my2ndList(indexInner))==「theListHoldingYourStrings(stringIndex))。我是Java新手,不知道最快,最有效的方法是什麼。
使用64成員switch語句。
switch(stringToTest) {
case "a1": System.out.println("Valid");
break;
case "a2": System.out.println("Valid");
break;
。 。 。
你試過了什麼方法? – Kyle 2013-05-06 13:55:19
閱讀字符串,檢查第一個字符,然後檢查第二個字符。完成。 – jpw 2013-05-06 13:56:31
你試過[String.charAt(int)](http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#charAt(int))嗎? – 2013-05-06 13:58:01