2013-05-06 164 views
-3

我希望檢查字符串是否包含指定位置中的字母或數字。檢查字符串中的指定位置是否包含字母或數字

這裏的問題:

我具有長度爲2的輸入字符串的字符串的形式爲「A1」。 我正在爲這些類型的字符串進行驗證。

要求:

  • 在索引位置0處的字母必須是字母中的一個:A,B,C,d,E,F,G,H
  • 在索引的數量/數字位置1必須是其中一個數字:1,2,3,4,5,6,7,8

謝謝!

+6

你試過了什麼方法? – Kyle 2013-05-06 13:55:19

+0

閱讀字符串,檢查第一個字符,然後檢查第二個字符。完成。 – jpw 2013-05-06 13:56:31

+1

你試過[String.charAt(int)](http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#charAt(int))嗎? – 2013-05-06 13:58:01

回答

0

嘗試正則表達式

str.matches("[a-h][1-8]"); 
4

正則表達式

input.matches("^[abcdefgh][12345678]$"); 

編輯:

這相當於:

input.matches("^[a-h][1-8]$"); 
  • 的^ ANC將匹配檢查放到輸入字符串的開頭。
  • [a-h]表示字符串中的第一個字符(在^之後)可以是字符a到h之一。
  • 的[1-8]表示第二個字符可以是1〜8。
  • 的$表明[1-8] 後接下來的事情必須是字符串的結尾。
+3

我發現'^ [ah] [1-8] $'更容易 – toniedzwiedz 2013-05-06 13:58:25

+0

您可以使用''^ [ah] [1-8] $「'作爲模式,不必指定所有的字母或數字應該匹配 – DaGLiMiOuX 2013-05-06 13:58:44

+1

是的,我也會......但我也考慮到了「新手因素」。 – rolfl 2013-05-06 13:58:56

1

答案很簡單:提取出的第n個字母,並檢查它是否是一個數字或字母:

isaletter(mystring.charAt(0)); 
isanumber(mystring.charAt(1)); 

靈活的答案:使用正則表達式。您需要了解一些關於它們的內容,但它們提供了很大的靈活性。

0

將其轉換爲字符數組, 「A1」 .toCharArray()

比較的char [0]你的領域 'A' .... 'H',你可以使用==現在,它的一個基本,如在字符[0] =='a'中。

您可以對chars [1] =='1'....等等做同樣的事情。

如果你這樣做,你必須比較字符值。

0

速度,記憶或效率是否重要?看起來你應該製作兩個列表,循環它們(嵌套),然後測試連接列表值是否爲==。像((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; 

。 。 。

相關問題