java - 获取 Stringbuffer 中换行符开头的索引

标签 java stringbuffer

当循环遍历 StringBuffer 时,我需要获取新行的起始位置。 假设我在字符串缓冲区中有以下文档

"This is a test
Test
Testing Testing"

在“test”、“Test”和“Testing”之后存在新行。

我需要这样的东西:

for(int i =0;i < StringBuffer.capacity(); i++){
if(StringBuffer.chatAt(i) == '\n')
    System.out.println("New line at " + i);

}

我知道这行不通,因为 '\n' 不是一个字符。有任何想法吗? :)

谢谢

最佳答案

您可以这样简化循环:

StringBuffer str = new StringBuffer("This is a\ntest, this\n\nis a test\n");

for (int pos = str.indexOf("\n"); pos != -1; pos = str.indexOf("\n", pos + 1)) {
  System.out.println("\\n at " + pos);
}

关于java - 获取 Stringbuffer 中换行符开头的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7649412/

相关文章:

java - 使用 Java 8 lambda 或流 api 的过滤器列表

JavaFX 自动向下滚动滚动 Pane

java - Springfox:拒绝/阻止在 swagger-ui 中使用 RestController 主体的子类作为模型

Java:为什么我不能将 StringBuffer 的 String 转换完整输出到控制台?

Java 比较两个地方的字符串并排除任何匹配项

Java多连接查询

java - 类型 "x"中的方法 search() 不适用于参数(字符串)

java - Jaxb 和 StringBuffer 哪一个在 Xml 字符串创建方面具有更好的性能?

java - 创建一个字符串缓冲区数组

java - 使用 LRU 缓存时避免字符串分配