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);

但是使用 List 非常慢。处理此问题时,我的网络应用程序几乎没有响应。

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 回答