2012-03-29 5 views
2

私は文字列を分離して1次元配列を以下にインスタンス化されるのと同じやり方で自動的に2Dアレイの特定の行に割り当てることができる方法を知りたい:どのように文字列を2次元配列に分割し、行に基づいて各グループにアクセスしますか?

public class TestArray { 
    public static void main (String [] args) { 

    String file1description= "We went to the mall yesterday."; 
    String[] file1tags; 
    String delimiter= " "; 
    file1tags = file1description.split (delimiter); 
    for (int i = 0; i < file1tags.length; i++) { 
     System.out.println (file1tags[i]); 
    } 
    } 
} 

任意単純がある場合方法を共有してください。あなたは私がかなり初心者だと言うことができますが、私は喜んで学びます。この例では、各単語はデリミタで区切られ、自動的に "file1tags"配列に格納されます。私は2d配列でこれを行うことができるので、同じ機能を持つ複数の配列を呼び出すことができますか?前もって感謝します!

答えて

1
public static String [][] to2dim (String source, String outerdelim, String innerdelim) { 

    String [][] result = new String [source.replaceAll ("[^" + outerdelim + "]", "").length() + 1][]; 
    int count = 0; 
    for (String line : source.split ("[" + outerdelim + "]")) 
    { 
     result [count++] = line.split (innerdelim); 
    } 
    return result; 
} 

public static void show (String [][] arr) 
{ 
    for (String [] ar : arr) { 
     for (String a: ar) 
      System.out.print (" " + a); 
     System.out.println(); 
    } 
} 

public static void main (String args[]) 
{ 
    show (to2dim ("a b c \n d e f \n g h i", "\n", " ")); 
} 

初心者に優しい簡単な例です:

public static String [][] to2dim (String source, String outerdelim, String innerdelim) { 
    // outerdelim may be a group of characters 
    String [] sOuter = source.split ("[" + outerdelim + "]"); 
    int size = sOuter.length; 
    // one dimension of the array has to be known on declaration: 
    String [][] result = new String [size][]; 
    int count = 0; 
    for (String line : sOuter) 
    { 
     result [count] = line.split (innerdelim); 
     ++count; 
    } 
    return result; 
} 
+0

ありがとう、これは初心者バージョンですか? – user1299661

+0

@ user1299661:はい、修正されたオリジナルがあります。 "[\ t]"は空白やタブの正規表現です。たとえば、可能な区切り文字のグループをそのように定義することができます。 –

+0

あなたの時間と忍耐力をどうもありがとう!私は大いに感謝します! – user1299661

1

ここ


String example = "a b c \n d e f \n g h i"; 
String[] rows = example.split("\n"); 
for (int i = 0; i < rows.length; i++) { 
    String[] columns = rows[i].split(" "); 
    for (int j = 0; j < columns.length; j++) { 
    //do something 
    } 
} 
+0

おかげで、どのように考え2D配列で、この作品? – user1299661

+0

wheresコードですか?あなたはそれを突然終了させた! – sgowd

+0

それは私のless thansでトリップしたsry!私はそれらをhtmlエンコードしなければならないか分からなかった – ControlAltDel

0
String example = "a b c \n d e f \n g h i"; 
String[] rows = example.split("\n"); 
String[][] table; 
for (int i = 0; i < rows.length; i++) { 
    table[i] = rows[i].split(" "); 
} 
関連する問題