在 Java 中如何优化字符串连接



问题描述

如何优化字符串连接?

解决方案

以下示例展示了使用 + 运算符和 StringBuffer.append() 方法连接的性能。

public class StringConcatenate {
   public static void main(String[] args) {
      long startTime = System.currentTimeMillis();
      
      for(int i = 0; i < 5000; i++) {
         String result = "This is"
            + "testing the"
            + "difference"+ "between"
            + "String"+ "and"+ "StringBuffer";
      }
      long endTime = System.currentTimeMillis();
      System.out.println("Time taken for string" 
         + "concatenation using + operator : " 
         + (endTime - startTime)+ " ms");
      long startTime1 = System.currentTimeMillis();
      
      for(int i = 0; i < 5000; i++) {
         StringBuffer result = new StringBuffer();
         result.append("This is");
         result.append("testing the");
         result.append("difference");
         result.append("between");
         result.append("String");
         result.append("and");
         result.append("StringBuffer");
      }
      long endTime1 = System.currentTimeMillis();
      System.out.println("Time taken for String concatenation" 
         + "using StringBuffer : "
         + (endTime1 - startTime1)+ " ms");
   }
}

结果

上述代码示例将产生以下结果。结果可能有所不同。

Time taken for stringconcatenation using + operator : 0 ms
Time taken for String concatenationusing StringBuffer : 22 ms

问题描述

如何连接字符串?

解决方案

以下示例展示了连接字符串。此方法返回一个 String,其值为传递给方法的 String,附加到 String 的末尾,用于调用此方法。

public class HelloWorld { 
   public static void main(String []args) {
      String s = "Hello"; 
      s = s.concat("word");
      System.out.print(s);
   }
}

结果

上述代码示例将产生以下结果。结果可能有所不同。

Helloword
java_strings.htm
Advertisements