私はJavaのArrayListsについてあまり知識がありません。次の問題の解決策が必要です。2D行列の列のarray[]を作成する方法。入力ファイルは次のとおりです。
VGV VV GVVV 
EFV VF 
EVEV VVV VV VVVV 
AAV VA GVAD 
VDV VD EVVV 
AVV VV VVAV
Stringarray liner(以下を参照)に必要な形式は次のとおりです。
{"VEVAVA"、 "GFVADV"、 "VVVVVV"、 "VVVFVVVAVDVV"、 "GEVGEV"、 "VVVVVV"、 "VEVAVA"、 "VVVDVV"}
私が持っているコードは次のとおりです。
    ArrayList<String[]> mat = new ArrayList<String[]>();
Scanner scan = new Scanner(new File("internal2"));
String[] liner = new String[m];
while (scan.hasNextLine()) {
    Scanner colReader2 = new Scanner(scan.nextLine());
    while(colReader2.hasNext())
    {
        for(int i = 0; i<m; i++) {
            liner[i] = colReader2.next();
//System.out.println(liner[i]);
            mat.add(liner);
            }
    }
//        scan.nextLine();
}
これの目的は、これらの文字列をで検索したいということですliner。現在、プログラムは次のようにしか表示されないlinerようです:{"A"、 "V"、 "V"、 "VV"、 "V"、 "V"、 "A"、 "V"}これは、入力ファイル。あなたが私を助けてくれることを願っています。
編集
私のコードは次のように続きます:
Pattern pattern = Pattern.compile("[A-G]+");
Pattern pattern2 = Pattern.compile("[V]+");
String[][] matrix4 = mat.toArray(new String[n][m]);
for (int i = 0; i < m; i++) {
    StringBuffer sf = new StringBuffer();
    for (int j = 0; j < n; j++) {
        sf.append(matrix4[j][i]);
    }
    Matcher matcher = pattern.matcher(sf.toString());
    Matcher matcher2 = pattern2.matcher(sf.toString());
    if (matcher.find()) {
        System.out.println("R");
    } else if (matcher2.matches()) {
        System.out.println("Q");
    }
}
したがって、liner少なくとも1回の出現を含む列文字列についてはA-G、R印刷する必要があります。Vまた、 'sのみを含む列文字列の場合は、を出力する必要がありますQ。その場合、出力は次のようになります。
R
R
Q
R
R
Q
R
R
しかし、これは私が得るものではありません。私が間違っていることを知っている人はいますか?
解決済み:
nullを使用してライナーからsを取り出さなければなりませんでしたArrays.fill(liner, "");