3

Stringセミコロン' ;'で区切られたバッファを読み取る必要があるアプリケーションがあります。

String buff = foo.getBuff(); // returns the buffer

ただし、バッファがかなり大きくなる可能性があるため、最後の文字列トークンを取得してから一時変数をフラッシュするString buffだけで、アプリに多くのメモリが蓄積されなくなります。

アップデート:

私はこのコードを試しました:

String lastToken = buff.substring(buff.lastIndexOf(";") + 1);

ただし、これと比較して、上記のコードでは結果が得られません。

List<String> slist = Arrays.asList(buff.split(";"));
String lastToken = slist.get(slist.size() - 1);

ただし、リストの使用は非常に遅いです。これを処理するときに、私のWebアプリがほとんど応答していません。

4

3 に答える 3

9

これはあなたを助けます:

String lastToken = buff.substring(buff.lastIndexOf(";") + 1);
于 2012-10-26T11:38:48.033 に答える
3

私はJavaを知りませんが、2つの関数をグーグルで検索すると、次のように機能するはずです。

String buff = foo.getBuff(); // returns the buffer
String lastToken = buff.substring(buff.lastIndexOf(";")+1);
于 2012-10-26T11:38:35.643 に答える
2

これをチェックして:

String lastToken = foo.getBuff().substring(foo.getBuff().lastIndexOf(';')+1);

編集:ダンは私よりも良くそして速く答えを与えました。

于 2012-10-26T11:41:12.720 に答える