2015-11-25 76 views
0

我有一個名單和數字列表的二維數組。第1列包含所有人的名字。如何編輯我的函數以獲取用戶輸入並檢查輸入是否匹配,或者是否在數組中的一個字符串中的某個名稱內部部分找到輸入?如何檢查二維數組列中的字符串?

例子:

Daniel Zen, 12, 3 
Niel Diam, 15, 5 
Arthur Ziel, 16, 99 

我目前的功能需要在第一列的名字,但我怎麼看扔每個如果他們匹配?以及如何確定他們的行值。

通緝輸出:(用戶輸入「IEL」)

Daniel Zen is row 0 
Niel... is row 1 
Arth... is row 2 

我迄今採取的輸入,將其轉換爲小寫。

public static void print_player_info(String[][] data, String player) 
    { 
    String name = player.toLowerCase(); 

    for(int i = 0; i<data[0].length; i++) 
    { 
    String namecolumn = data[i][0]; 
    String rownames = data[0][i]; 
    if(name.indexOf(namecolumn)!= -1)//i dont think this is correct 
    { 
    // what would need to go here 
    } 
    } 

    } 
+0

而不是使用二維數組,你爲什麼不使用'entries'的名單甚至更好,如果你爲什麼不使用'Map' – nafas

回答

0

一些類似的事情會爲你做..我沒有測試過這個,有一個檢查,讓我們知道。

public static void print_player_info(String[][] data, String player) { 
     String name = player.toLowerCase(); 
     for (int i = 0; i < data.length; i++) { 
      String temp = Arrays.toString(data[i]); 
      if(temp.toLowerCase().contains(player)){ 
       System.out.println(player + " - " + i); 
      } 

     } 

    } 
+0

它的工作沒有重複的名字,我只是稍微調整一下,所以我得到我想要的輸出。謝謝 –

0
public static void print_player_info(String[][] data, String player) { 
    int i = 0; 
    for (String[] dd : data) { 
     for (String d : dd) { 
      if (d.toLowerCase().contains(player.toLowerCase())) { 
       System.out.println(d + " is row " + i); 
      } 

     }i++; }} 
相關問題