0

StringBuffer にファイルのコンテンツがあります。ファイルの内容には、(1 行ではなく) 多くの行が含まれています。インデックス 4 (たとえば) からその行の終わりまでの行の内容を編集したい。replace()StringBuffer の内容を編集するために使用します。

ポイントは、replace メソッドに開始インデックスと終了インデックスなどのパラメーターがあることです。しかし、各行の文字数が異なるため、終了インデックスが何であるかはわかりません

行の終了インデックスを見つけるために使用することを考えてstr.indexOf("\n")いますが、ファイルには多くの行があるため、誤った結果が返されます。

これはreadFile()、コードを読む必要がある場合です

ありがとうございました

public StringBuffer readFile(){ //read file line by line
    File f = getFilePath(fileName);
    StringBuffer sb = new StringBuffer();
    String textinLine;

    try {
        FileInputStream fs = new FileInputStream(f);
        InputStreamReader in = new InputStreamReader(fs);
        BufferedReader br = new BufferedReader(in);

     while (true){
            textinLine = br.readLine();
            if (textinLine == null) break;
            sb.append(textinLine+ "\n");
        }
        fs.close();
        in.close();
        br.close();
    } ... // just some catch statements heres
}
4

2 に答える 2

0

StringBuffer に追加する前に文字列を処理してみませんか。

ちなみに、indexOf(String str, int fromIndex)関数を使用して StringBuffer を解析できると思います。 を取得するたびに'\n'オフセット値を設定し、次に次の を取得するときに、\nインデックス値にオフセットを加えればよいのです。

于 2012-11-15T21:03:38.290 に答える
0

あなたが示したように使用String.indexOf()しますが、開始位置で渡します。indexOf('\n', 4);

于 2012-11-15T20:50:06.583 に答える