当前位置: 首页 > 知识库问答 >
问题:

如何从java中的stringbuilder obj中删除前3行

丌官嘉福
2023-03-14

我有一个StringBuilder对象,它的值分别是称呼、姓名、姓氏、地址和电话号码,每一个都是单独的行。

因此,我完全需要从对象中删除前3行以获得地址和phone_no。

我用过,,

sb.delete(0, sb.indexOf("\n"));

但它只是删除了第一行。我尝试在对象上迭代3次并运行deleteapi,但仍然只删除了第一行。

你能帮我一次删除这3行代码,而不增加代码的复杂性吗?

共有2个答案

凌和悦
2023-03-14
sb.delete(0, sb.indexOf("\n"));

但它刚刚删除了第一行。

当然有。上面告诉StringBuilder删除索引0到第一个换行符的所有字符。如果你想去掉三行,你必须把上面的放在一个循环中,并且调用它三次。或者更准确地说:从0删除到indexOf()1。

或者,您可以使用另一个版本的indexOf(),它接受一个起始索引,并使用它来计算第三个换行符的索引!

除此之外,在概念上... StringBuilder旨在构建字符串,而不是像那样操纵它们。我建议:首先考虑不要使用StringBuilder。相反,使用List

StringBuilder类的API不是设计来执行复杂的indexOf'ing或删除的。它的目的是附加东西,然后把它变成一个字符串。当你考虑不同的行尾时,它变得特别有趣,也许你需要indexOf()1...或者2,这取决于上下文。只将你的行存储在列表中(最后没有任何换行符)会容易得多,然后当你完成时...只需使用适合你的换行符将该列表转换为字符串。

诸修伟
2023-03-14

正如您在文档中看到的那样,delete函数将结束索引视为独占索引。

所以当你做某人时。删除(0,sb.indexOf(“\n”)3次,\n保留,因为它不包含在已删除的部分中,这是您从索引0删除到0的第二次和第三次。

与某人一起尝试。删除(0,sb.indexOf(“\n”)1)

 类似资料:
  • 问题内容: 我有一个包含一些对象的对象,例如,每个对象都有一个and 属性。如何从其中仅删除具有特定“名称” 的对象? 问题答案: 您可以使用如下形式:

  • 我想删除表中的前3行和后3行。但是使用单一查询从表中删除数据。我正在使用oracle 10g。请给我oracle 10g的解决方案。 我的桌子是这样的: 提前感谢。

  • 但是我们不能在集合中存储HashMap。我想要HashMap与键,值对作为返回值,这将被添加到列表中。也就是说,最终的值应该采用ArrayList>格式。 你能在这方面帮助我吗?谢了。

  • 问题内容: 我是Swift编码和学习的新手,我正在关注swift 2的教程并使用swift 3,因此在继续学习时会遇到一些问题,这是我一直坚持的问题。 我有一张名字表,我正在为它们做一个滑动和删除功能,将它们从一个名称变量中删除,该变量是一个数组。我选择了与xcode内的教程最相似的函数并将其填充,但是当我单击删除按钮时,我的应用程序会随机崩溃。这是我的删除按钮代码… 问题答案: 适用于 Swif

  • 问题内容: 删除字符串的前三个字符的最有效方法是什么? 例如: 问题答案: 只需使用子字符串:将返回

  • 问题内容: 我需要有关从UTF-8文件删除BOM并创建其余xml文件的副本的方法的建议。 问题答案: 有因为在UTF-8文件中的BOM的工具断裂是一个 非常 以我的经验平常的事。我不知道为什么会有这么多的否决票(但是这给了我机会去尝试赢得足够的选票来赢得特殊的SO徽章;) 更严重的是:UTF-8 BOM通常没有太大意义, 但 在规格上完全有效(尽管不建议使用)。现在的问题是,很多人不知道BOM在U