jjzjj

stringbuilder

全部标签

Java StringBuilder.setLength() - 时间复杂度是 O(1) 吗?

我计划对StringBuilders中的最后一个字符执行大量删除操作。使用sb.setLength(sb.length()-1);的解决方案对我来说看起来不错。但是,由于这些删除将处于循环中,我需要知道它的复杂性。我的理解是,此操作只是递减我的StringBuilder对象的一些私有(private)属性,并且不执行任何字符本身的复制/克隆/复制,因此它的时间复杂度为O(1),并且应该可以快速运行。我说得对吗? 最佳答案 如果新长度小于旧长度,则为O(1),在您的情况下。JDK的源码网上有,大家可以自行查看。以Java8为例,set

java outOfMemoryError 与 stringbuilder

当我调用这个方法时,我得到了一个javaoutOfMemoryError-我在一个循环中使用它来按顺序解析许多大文件。我的猜测是result.toString()在循环期间没有正确收集垃圾。如果是这样,我该如何解决?privateStringmatchHelper(Stringbuffer,Stringregex,Stringmethod){Patternabbrev_p=Pattern.compile(regex);//normsU.S.A.,B.S.,PH.D,PH.D.Matcherabbrev_matcher=abbrev_p.matcher(buffer);StringBuf

java - 尝试/最终阻止问题

找到这个问题here我不明白,为什么在第一种情况下打印CoolReturn+1而在第二种情况下打印CoolReturn?它是如何工作的?谢谢====================将打印什么?publicvoidtestFinally(){System.out.println(setOne().toString());}protectedStringBuildersetOne(){StringBuilderbuilder=newStringBuilder();try{builder.append("Cool");returnbuilder.append("Return");}final

java - 想象一个真实的并发场景,应该使用StringBuffer而不是StringBuilder?

我知道StringBuffer和StringBuilder的区别。readhere!一般来说,正如javadoc所说,Wherepossible,itisrecommendedthatthisclassbeusedinpreferencetoStringBufferasitwillbefasterundermostimplementations.但是,StringBuilder的javadoc也说:InstancesofStringBuilderarenotsafeforusebymultiplethreads.Ifsuchsynchronizationisrequiredthenit

java - 性能问题 : "java.text.MessageFormat.format" vs "StringBuilder"

我想知道比较MessageFormat或StringBuilder类。举个例子,我有一个字符串。对于性能明智的哪一个是快速的:java.text.MessageFormat.format或StringBuilder("Test").append("Hello")?Stringtxt=java.text.MessageFormat.format("Test{0}","Hello")Stringtxt1=newStringBuilder("Test").append("Hello")我只想知道在最佳实践或性能方面使用哪个 最佳答案 自己

java - str.setCharAt(索引 ,'X')

有没有办法使用str.charAt(index)通过索引替换特定的字符?像这样:str.setCharAt(1,'X');//replace2ndcharwith'X'有什么简单的方法可以做到这一点吗? 最佳答案 根据str的来源,您可以这样做:StringBuilderstr=newStringBuilder("Teststring");str.setCharAt(1,'X');str.toString();如果您有一个要拼凑在一起并进行大量修改的字符串,那么使用StringBuilder而不是字符串更有意义。但是,如果您要修改来

java - 向 Java 类添加方法是否会增加其实例的内存使用量?

向类中添加成员变量肯定会增加其实例在堆上的内存占用,但是类的方法呢?例如,如果我有一个由单个StringBuilder组成的类,但不断添加许多方法来操作该StringBuilder,那么随着我添加更多方法,该类的每个实例是否会按比例占用更多内存?谢谢! 最佳答案 不,添加方法不会增加对象的占用空间,只会增加编译代码的占用空间。换句话说,每个实例的内存成本为零。 关于java-向Java类添加方法是否会增加其实例的内存使用量?,我们在StackOverflow上找到一个类似的问题:

java - 为什么不能用一个String来初始化一个StringBuilder对象呢?

StringBuildersb="asd";在Java中,这种说法显然是错误的。像eclipse这样的IDE会告诉你:cannotconvertfromStringtoStringBuilder但是,String对象可以由=运算符初始化。我想知道一些与内存分配相关的原因。 最佳答案 因为StringBuilder是一个对象,它需要被构造。您收到错误是因为String不是StringBuilder。String比较特殊,它被设计为介于primitive和class1之间。您可以将字符串文字直接分配给String变量,而不是调用构造函数

c# - 值得拥有一个用于 5 个连接的 StringBuilder 吗?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:AtwhatpointdoesusingaStringBuilderbecomeinsignificantoranoverhead?相关/重复问题StringvsStringBuilderAtwhatpointdoesusingaStringBuilderbecomeinsignificantoranoverhead?尽可能简单明了,我有这个方法1:cmd2.CommandText=("insertinto"+TableName+"values("+string.Join(",",insertvalues)+

Java:StringBuffer 和串联

我在Java中使用StringBuffer将字符串连接在一起,如下所示:StringBufferstr=newStringBuffer();str.append("stringvalue");我想知道是否有一种方法(虽然我没有通过快速浏览文档找到任何东西)或其他一些方法来添加“填充”。让我解释一下;每次我向字符串附加一些内容时,我想在末尾添加一个空格,如下所示:Stringfoo="stringvalue";str.append(foo+"");我有好几次追加电话……每次,我都想添加一个空格。有没有办法设置对象,使其在每次追加后自动添加一个空格?编辑——StringinputStrin