2016-12-19 4 views
-1

こんにちは私は入力ファイルを持っており、出力を取得する必要があります。私はJavaコードとGroovyコードも試していますが、結果を見つけることができません。誰かが助けることができるかどうか私に教えてください。入力はtxtファイルであり、すべての値は1つの列にしかありません。同じファイルの別の場所に文字をコピーするコード

入力:

A B C D E 
    F G H I 
    J K L M 
N O P Q R 
    S T U V 
    W X Y Z 

出力:

data['R1']= R.toString() 
for (int i=0; i<R.length(); i++) { 
    if (i==1) R['i']= 'A'; 
    if (i==2) R[i] = 'A'; 
    if (i==4) R[i] ='S'; 
    if (i ==5) R['i'] = 'S'; 
} 
println R 
+0

データ['R1'] = R.toString() for(int i = 0; i

+0

私もJavaコードを試しました。しかし、それは動作していません.. –

+0

論理は、上記のセルをコピーして空の領域に印刷することですが、私はできません。 –

答えて

0

はここ

// Mock the input file 
def input = """A B C D E 
    F G H I 
    J K L M 
N O P Q R 
    S T U V 
    W X Y Z""" 

def inputFile = new StringReader(input) 

// Process the input file 
inputFile 
    .iterator() 
    .collect { it.split(" ") } // Break each line into columns. 
    .inject([keep : null, rows : []]) { context, row -> 
     if(row[0]) { 
      /* 
      * If the row contains a value in the first column, 
      * remember the value and keep the row as-is. 
      */ 
      [ 
       keep : row[0], 
       rows : context.rows + row 
      ] 
     } else { 
      /* 
      * If the row doesn't have a value in the first column, 
      * prepend the remembered value to the row. 
      */ 
      [ 
       keep : context.keep, 
       rows : context.rows << [context.keep] + row.drop(2).flatten() 
      ] 
     } 
    } 
    .rows // The context is no longer needed, so just grab the rows form it. 
Groovyの

での例です:

A B C D E 
A F G H I 
A J K L M 
N O P Q R 
N S T U V 
N W X Y Z 

これは私がこれまで試してみましたものです0

+0

こんにちはEmmanuel、私はやってみましたが、実行しようとすると何もしません。出力は生成されません。私は、入力 "" "A B C D Eとその下の行を定義している間に、| and stripMargin()を使用して、" "複数行のinoutを読み込まない場合、このメソッドで読み込むようにしてください。しかし、まだ何も処理していません。 –

+0

また、inputFile.iterator()はこのように書かれていなければなりません。 .collectと.inject行の前にinputFileをインクルードする必要があります。それはコードを解析していないためです。 –

関連する問題