1

単一の列に文字列のリストがあります。これらの文字列から3つの列を作成してから、出力を別のファイルに出力したいと思います。どうすればよいですか?

これが私がこれまでに試したことです:

ArrayList<String> list=new ArrayList<String>();
File file = new File("f://file.txt");

try {
    Scanner scanner = new Scanner(file);

    while (scanner.hasNextLine()) {
        String line = scanner.nextLine();
        System.out.println(line);
    }

    scanner.close();
} catch (FileNotFoundException e) {
    e.printStackTrace();
}

私の入力データ:

City
Gsk
Relocation
sripallu
here
jrajesh
gurgaon
unitech
StatisticsThreads
WizOty
LTDParsvnathK
Quotesby
newest
PMaashuktr

私の期待する出力:

City      Gsk      Relocation
sripallu here      jrajesh
gurgaon  unitech   StatisticsThreads
WizOty   LTDParsvnathK  Quotesby
newest   PMaashuktr      Loans
.
.
.
.
.
.
.
4

2 に答える 2

1

出力のようなクラスで要件を構造化し、出力のリストを作成できます。

public class Output{
   private String str1;
   private String str2;
   private String str3;
   <geter & setter method>
}

..。

ArrayList<Output> list=new ArrayList<Output>();
int i=-1; Output op =null;
while (scanner.hasNextLine()) {
     String line = scanner.nextLine();i = ++i%3;
     if(i==0){
        op = new Output();
        op.setStr1(line);
     }else if(i==1)
        op.setStr2(line);
     else
        op.setStr3(line);
}
于 2013-01-19T11:46:05.250 に答える
0

私はあなたのコードを取り、それを少し修正しました:

File file = new File("f://file.txt");

try {
    Scanner scanner = new Scanner(file);

    int itemsOnRow = 0;

    while (scanner.hasNextLine()) 
    {
        String line = scanner.nextLine();
        System.out.print (line + " ");

        itemsOnRow++;

        if (itemsOnRow == 3)
        {
            itemsOnRow = 0;
            System.out.println ();
        }
    }

    scanner.close();
}
catch (FileNotFoundException e) {
    e.printStackTrace();
}

次回は実際に実装してみてください。失敗しても、自分が書いたコードを投稿すると、ここにいる人々があなたを助けやすくなります。

于 2013-01-19T11:42:53.390 に答える