0

20,000 行を含むテキスト ファイルがあります。列として含まれているデータ。ただし、列間のスペースが異なり、列の長さも異なります。元

aaaaa ()()()()()bdo()()()()()()()()  ttttt ()() dgee ()()()()()  yyyy

bbb()()()()()()()ggg ()()()()()()()(  fff()()()(gbe()()()()()()( yHH

cc()()()()()()()()dddd()()()()()()() I ()()()()bdeg()()()()()()yyyyy

ここでスペースは括弧から表されます

N 番目 (例: 4 番目) の列を特定の単語 (例: "name" ) に置き換えたい

出力例:

aaaaa ()()()()()bdo()()()()()()()()  ttttt ()() name ()()()()()  yyyy

bbb()()()()()()()ggg ()()()()()()()(  fff()()()(name()()()()()()( yHH

cc()()()()()()()()dddd()()()()()()() I ()()()()name()()()()()()yyyyy

ここでスペースは括弧から表されます 誰もこれについて私を助けることができますか?

4

1 に答える 1

0
public static void replaceColumn(int column, String word, File file) throws IOException {
    Scanner in = new Scanner(file);
    PrintWriter out = new PrintWriter(file);
    while (in.hasNextLine()) {
        String line = in.nextLine();
        line = line.trim();
        String columns = line.split(" ");
        columns[column] = word;
        line = arrayToString(columns, " ");
        out.println(line);
    }
    in.close();
    out.close();
}

//Helper method
private static String arrayToString(Object[] array, String separator) {
    if (array.length == 0) {
        return "";
    }
    StringBuilder sb = new StringBuilder();
    for (Object element : array) {
        sb.append(element);
        sb.append(separator);
    }
    sb.delete(sb.length - separator.length(), sb.length());
    return sb.toString();
}
于 2013-09-26T17:47:50.780 に答える