标签: stringbuilder

在什么时候使用StringBuilder变得无关紧要或开销?

最近我发现自己使用StringBuilder进行所有字符串连接,无论大小,但是在最近的性能测试中,我换掉了同事的stringOut = string1 +"." String2样式连接(在一个10000x +循环中使用,每次都是StringBuilder)用于StringBuilder只是为了看看它在次要连接中会有什么不同.

我发现,在性能测试的许多次运行中,无论是串联还是StringBuilder,更改都无论是更高还是更低(重申这是针对小型连接).

在什么时候,StringBuilder对象的"newing up"否定了使用它的好处?

.net stringbuilder

18
推荐指数
3
解决办法
2710
查看次数

String.Format vs"string"+"string"还是StringBuilder?

可能的重复:
String.Format和StringBuilder一样高效
C#字符串输出:格式还是concat?

什么是性能优先级以及优先选择以下各项的条件:

String.Format("{0}, {1}", city, state);
Run Code Online (Sandbox Code Playgroud)

要么

city + ", " + state;
Run Code Online (Sandbox Code Playgroud)

要么

StringBuilder sb = new StringBuilder();
sb.Append(city);
sb.Append(", ");
sb.Append(state);
sb.ToString();
Run Code Online (Sandbox Code Playgroud)

.net performance stringbuilder string.format string-concatenation

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

在StringBuilder中的最后一个String之后正常删除"\n"分隔符

有以下Java代码,StringBuilder使用"\n" 创建,即回车分隔符:

while (scanner.hasNextLine()){
    sb.append(scanner.nextLine()).append("\n");
}
Run Code Online (Sandbox Code Playgroud)

它发生了,在最后一个String(行)后面有"\n"符号.

如何从结果StringBuilder对象中优雅地删除最后一个"\n" ?

谢谢.

java string stringbuilder newline

17
推荐指数
2
解决办法
2万
查看次数

如何在StringBuilder上检查null?

我想在我的代码中专门检查null或empty.StringBuilder在Java中,empty和null是否相同?

例如:

StringBuilder state = new StringBuilder();
StringBuilder err= new StringBuilder(); 
success = executeCommand(cmd, state, err); 

/* here executeCommand() returns empty or null in state, I cant  make changes in  <br/> executeCommand() so can I check it in my code somehow for state, if its null or empty? */<br/>

if (state == null) { //do blabla1 }
if (state.tostring().equals("")) { //do blabla2 }
Run Code Online (Sandbox Code Playgroud)

以上代码是否有意义或我应该如何更改?

java stringbuilder

17
推荐指数
3
解决办法
7万
查看次数

为什么要使用StringBuilder?StringBuffer可以使用多个线程以及一个线程吗?

假设我们的应用程序只有一个线程.我们正在使用StringBuffer那么问题是什么?

我的意思是如果StringBuffer可以通过同步处理多个线程,使用单线程有什么问题?

为什么要用StringBuilder呢?

java stringbuilder multithreading synchronization stringbuffer

16
推荐指数
3
解决办法
2万
查看次数

Java中的String类没有反向方法?

为什么StringJava中没有反向方法?相反,该reverse()方法是在StringBuilder?是否有一个原因?但字符串有split(),regionMatches()等等,这是不是更复杂的reverse()方法.

当他们添加这些方法时,为什么不添加reverse()

java string stringbuilder

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

使用正则表达式支持的StringBuilder的replaceAll?

我查看了Java API和一些常见的第三方库,但我找不到一个合适的方法来完成String.replaceAll所做的工作,但StringBuilder除外.

我知道有一点工作,可以为StringBuffer完成,但我不想走这条路,因为StringBuffer比较慢.

有没有人知道任何第三方实用程序,或者是否有快速代码来实现此功能?

java regex string stringbuilder

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

Javac的StringBuilder优化弊大于利吗?

假设我们有一些代码如下:

public static void main(String[] args) {
    String s = "";
    for(int i=0 ; i<10000 ; i++) {
        s += "really ";
    }
    s += "long string.";
}
Run Code Online (Sandbox Code Playgroud)

(是的,我知道更好的实现会使用a StringBuilder,但请耐心等待.)

平凡地说,我们可能期望生成的字节码类似于以下内容:

public static void main(java.lang.String[]);
Code:
   0: ldc           #2                  // String 
   2: astore_1      
   3: iconst_0      
   4: istore_2      
   5: iload_2       
   6: sipush        10000
   9: if_icmpge     25
  12: aload_1       
  13: ldc           #3                  // String really 
  15: invokevirtual #4                  // Method java/lang/String.concat:(Ljava/lang/String;)Ljava/lang/String;
  18: astore_1      
  19: iinc          2, 1
  22: goto          5
  25: …
Run Code Online (Sandbox Code Playgroud)

java string optimization stringbuilder javac

16
推荐指数
1
解决办法
481
查看次数

返回将值赋值给局部变量而不是直接返回值有什么好处?

我正在做一个java代码检查.这是一个函数(片段):

String getValue() {
     String res;
     StringBuilder strBuilder = new StringBuilder();

     // More code here that sets strBuilder

     return res = strBuilder.toString();
}
Run Code Online (Sandbox Code Playgroud)

首先是警告不使用res的值.其次我不明白回报.他们为什么不这么做return( strBuilder.toString() ).有某种优势吗?

java string stringbuilder

16
推荐指数
3
解决办法
834
查看次数

Java for循环不会在我的代码中终止

由于某种原因,我的for循环不会在我的CapitalizeFirstSentence方法中终止.我在那一行设置一个断点,条件(i!= -1)未完成,所以循环应该终止,但它不会!

当我使用(i> 0)条件时它起作用.

我不确定这里发生了什么.

import javax.swing.JOptionPane;

public class SentenceCapitalizer {


    //Main Method
    public static void main(String[] args) {
        String input; //creates a String to hold keyboard input

        //Prompt the user to enter a String using JOptionPane and set it equal to input
        input = JOptionPane.showInputDialog("Enter a string. ");

        //Display the new String with the first letter of each sentenced capitalized
        JOptionPane.showMessageDialog(null, CapitalizeFirstSentence(input));

        //Exit the program
        System.exit(0);
    }


    //Capitalize first letter of each sentence
    public static String CapitalizeFirstSentence(String in)
    { …
Run Code Online (Sandbox Code Playgroud)

java stringbuilder loops for-loop while-loop

16
推荐指数
2
解决办法
1093
查看次数