2016-02-13 93 views
0

所以我不想使用ascii表來做到這一點。我想讓用戶輸入一個字母數字(例如A3),然後取出字母(A)並在字符串ABC中找到它,這樣它會給我一個介於1-9之間的數字,而不是具有ascii值。這會讓我更容易在稍後放入二維數組。如何使用charAt查找字符串中字符的位置

但是,當我使用System.out.println(abc.charAt(row));它會說因爲它使用ascii值而超出限制的範圍。我怎樣才能讓這個它不

 public static void main(String[]args){ 
     Scanner k = new Scanner(System.in); 
     String abc = "ABCDEFGHIJ"; 
     String ab = "abcdefghij"; 
     abc.equals(ab); 
     System.out.println("Please enter the attack location:"); 

      while (!k.hasNext("[A-J a-j]+[0-9]")) { 
       System.out.println("Wrong"); 
       k.next(); 
      } 

      String location = k.next(); 
      char row = location.charAt(0); 
      int num = (int) location.charAt(1); 
      System.out.println(abc.charAt(row)); 
} 
} 
+2

['String#indexOf'](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html #的indexOf-內部 - )? – MadProgrammer

回答

3

記住,爲A開始的ASCII字符在65,所以如果用戶輸入A3,那麼你實際使用abc.charAt(65),這顯然不是你想。

相反,你需要找到數組中的字符的索引...

​​

看一看String#indexOf更多細節

您可能還需要使用Character.toUpperCase轉換的char用戶輸入爲大寫,這將使它更容易搜索你String

PS-也像row - 65(或row - 'A'如果日難以記住)會給你相同的結果;)

相關問題