标签: stringbuffer

给定特定的起点和终点位置构建String的好方法是什么?

(java 1.5)

我需要在片段中构建一个String.我给了一组(子)字符串,每个字符串都有一个起点和终点,它们属于最后一个字符串.想知道是否有一些规范的做法.这不是家庭作业,我可以使用任何可授权的OSS,例如jakarta commons-lang StringUtils等.

我的公司有一个使用CharBuffer的解决方案,我很满意保留它(并添加一些单元测试,其中没有(?!))但代码相当可怕,我想要更容易阅读的东西.

正如我所说,这不是功课,我不需要一个完整的解决方案,只需要一些指向库或java类的指针,这可能会给我一些见解.String.Format看起来并不正确......

我必须尊重输入太长和太短等.子字符串将按它们出现的顺序重叠(如果重叠).

作为输入的一个例子,我可能有类似的东西:

字符串:开始:结束

FO:0:3(字符串短于字段)

BAR:4:5(字符串大于字段)

BLEH:5:9(字符串覆盖前一个字段)

我想结束

FO  BBLEH  
01234567890
Run Code Online (Sandbox Code Playgroud)

(编辑:对所有人 - StringBuilder(具体来说,"预分配到已知长度,然后使用.replace()"主题)似乎是我在想的.感谢所有建议的人!)

java string stringbuffer

2
推荐指数
1
解决办法
216
查看次数

StringBuilder vs. StringBuffer - 需要助记符

我知道StringBuffer和之间的技术差异StringBuilder.

但如果我半年左右不使用它们,我只会忘记哪一个是同步的,哪一个不同步.我总是查找JavaDoc的第一句话.

那么:是否有某种容易记住的助记符来区分它们?如何你还记得有什么区别?

java stringbuilder stringbuffer

2
推荐指数
1
解决办法
341
查看次数

Java解释:为什么String immutable使StringBuffer更高效

我在Java书中读过:

因为a String是不可变的,使用StringBuffer效率更高.

我知道String实例是不可变的.

我也明白,StringBuffer使处理字符串比正常情况更有效.

但是我无法解决的问题是连接这两个概念的原因,即String不可变的帮助是StringBuffer什么?

谢谢 :)

java string stringbuffer immutability

2
推荐指数
1
解决办法
3010
查看次数

我们可以在String中将String数组添加到StringBuffer或StringBuilder中吗?

现在我正在开发一个关于Java的简单项目.我在String Builder中附加并在控制台上打印字符串.当我尝试将字符串数组追加到字符串生成器中时,它会在控制台上打印对象而不是字符串数组.告诉我的尝试是对还是错.

java arrays string stringbuilder stringbuffer

2
推荐指数
1
解决办法
7031
查看次数

String vs StringBuffer.IDEA的提示

Intellij Idea提供更换以下内容:

StringBuffer sb = new StringBuffer();
sb.append("Name=").append(name).append(", name2=").append(name2).append(", list=").append(list);
return sb.toString();
Run Code Online (Sandbox Code Playgroud)

至:

return "name=" + name + ", name2=" + name2 + ", list=" + list;
Run Code Online (Sandbox Code Playgroud)

据我所知,它不太有效(可变/不可变).那么,更好的是什么?

java performance intellij-idea stringbuffer

2
推荐指数
1
解决办法
377
查看次数

为什么java有StringBuilder或StringBuffer?

String和(StringBuilder或StringBuffer)之间存在许多差异,例如可变性和许多字符串操作

可能这个问题看起来有点傻,但我想知道编程范式.

我想问一下,为什么Java实现了另一个类,StringBuilder或者StringBuffer像数据结构那样String.为什么他们自己没有给出这些功能String.

为什么不把String本身线程安全的,或提供一些额外的功能StringBuilder或StringBuffer有?

java string stringbuilder stringbuffer

2
推荐指数
1
解决办法
143
查看次数

StringBuffer vs StringBuilder

我正在学习算法实现课程.我的老师提到了StringBuffer和StringBuilder,他说StringBuffer比StringBuilder更安全,因为在线程方面.真的吗?如果是这样,那意味着什么?我查了一下这个问题,很多答案都提到了同步.任何人都可以解释这意味着什么,以及如何使StringBuffer比StringBuilder更安全?

java algorithm stringbuilder synchronized stringbuffer

2
推荐指数
1
解决办法
4027
查看次数

如果在StringBuffer(或StringBuilder)上连续调用append()而不重用目标变量,我该如何提高性能

我在Java中有以下代码.

String foo = " ";
Run Code Online (Sandbox Code Playgroud)

方法1:

StringBuffer buf = new StringBuffer();
buf.append("Hello");
buf.append(foo);
buf.append("World");  
Run Code Online (Sandbox Code Playgroud)

方法2:

StringBuffer buf = new StringBuffer();
buf.append("Hello").append(foo).append("World");
Run Code Online (Sandbox Code Playgroud)

有人可以启发我,方法2如何才能提高代码的性能?

https://pmd.github.io/pmd-5.4.2/pmd-java/rules/java/strings.html#ConsecutiveAppendsShouldReuse

java stringbuilder stringbuffer pmd

2
推荐指数
1
解决办法
1585
查看次数

StringBuilder中length()和capacity()方法的区别

我试图弄清楚何时使用或为什么capacity()方法与length()方法StringBuilder或StringBuffer类不同.

我搜索了Stack Overflow并设法得出这个答案,但我不明白它与length()方法的区别.我也访问了这个网站,但这对我帮助更少.

java stringbuilder stringbuffer

2
推荐指数
1
解决办法
1609
查看次数

StringBuffer的替换方法不能正常工作

下面是一个代码,如果我遇到数组(arr)中的字母O,那么我必须用"."替换相同的数组索引(newArr).连同其相邻索引,即索引(i,j),(i + - 1,j)和(i,j + - 1)需要用"."替换.

考虑数组(arr)的这个输入:

6 7  
.......

...O...

.......

.......

.......

.......
Run Code Online (Sandbox Code Playgroud)

我应该使用数组(newArr)得到什么输出:

OOO.OOO

OO...OO

OOO.OOO

OOOOOOO

OOOOOOO

OOOOOOO
Run Code Online (Sandbox Code Playgroud)

我得到的输出:

OO...OO

OO...OO

OO...OO

OO...OO

OO...OO

OO...OO
Run Code Online (Sandbox Code Playgroud)

PS:我知道角落的情况,如果我们在索引中得到一个O,将导致ArrayIndexOutOfBound异常.请考虑上面的例子.

import java.util.*;

public class Pattern{

public static void main(String[] args){

    Scanner sc= new Scanner(System.in);

    int R= sc.nextInt(); // Takes input for Rows

    int C= sc.nextInt(); // Takes input for Coloumn

    StringBuffer[] arr= new StringBuffer[R]; // Array of type StringBuffer to which input is given.

    StringBuffer[] newArr= new StringBuffer[R]; // …
Run Code Online (Sandbox Code Playgroud)

java arrays replace stringbuffer

2
推荐指数
1
解决办法
132
查看次数