0

ループからのプリントアウトで小さな問題が発生しました。

String str1 = null; 
for (int row=0; row<dfsa.length; row++) {

    System.out.print("\tstate " + row +": ");   

    for (int col=0; col<dfsa[row].length; col++) {  
        for (int i=0; i<dfsa_StateList.size(); i++) { // traverse thru dfsa states list                     
            if (dfsa_StateList.get(i).equals(dfsa[row][col])) {
                str1 = alphabetList.get(col)+ " " + i + ", ";
                System.out.print(str1);
            }
        }                   
    }           
    System.out.println();
}

コードの説明: 2D 配列 (行と列) をトラバースし、次に各スロットから別の 1D arrayList をトラバースします。arrayList のスロットが 2D 配列のスロットと一致する場合は、2D 配列の列とインデックスを出力します。 arrayList の

出力例:

    state 0: b 1, c 2, 
    state 1: e 3, 
    state 2: a 4, 
    state 3: a 5, 
    state 4: r 6, 
    state 5: r 7, 
    state 6: e 8, 
    state 7: 
    state 8:

1 つの行に 2 つの一致があるため、b 1 と c 2 は同じ行にあります。1 つの行内で 2 つの一致を区切るためにカンマのみが必要です。一部の正規表現がオンラインで見つかりましたが、機能しませんでした

さらに、最後の 2 行 (状態 7 と 8) に「なし」を表示したいと考えています。私もそれをやろうとしてきましたが、まだ運がありません。

アドバイスをお願いします、ありがとう

4

3 に答える 3

0
if (dfsa_StateList.get(i).equals(dfsa[row][col])) {
                str1 = alphabetList.get(col)+ " " + i + ", ";
                if(str1.endsWith(","))
                    System.out.print(str1.substring(0, str1.lastIndexOf(",")));
                if(str1.isEmpty())
                    System.out.print("None");
 }
 else {//no match
     System.out.print("None");
 }
于 2013-08-18T09:19:28.287 に答える
0

あなたが使用することができます

   for (int col = 0; col < dfsa[row].length; col++)
    {
        for (int i = 0; i < dfsa_StateList.size(); i++)
        { // traverse thru dfsa states list                     
            if (dfsa_StateList.get(i).equals(dfsa[row][col]))
            {
                str1 = alphabetList.get(col) + " " + i + ", ";
                if (str1.endsWith(","))
                {
                    int index = str1.lastIndexOf(",");
                    str1 = str1.substring(0, index);
                }
                if(str1.trim.isEmpty())
                {
                  System.out.print("None");
                }
                else
                {
                System.out.print(str1);
                }
            }
        }
    }
于 2013-08-18T09:20:39.187 に答える