1.字符串连接操作符"+",不适合用在大规模字符串连接场合,由于字符串不可变,2个字符串连接在一起时,它们内容都要被拷贝。
测试代码:
public class _51StringConcatenation {
private static final int NUM_ITEMS = 5000;
private static final String LINE_FOR_ITEM = "DJLKFLDLJKFKJLDKJFKJDKFLKDLKL" +
"LKJFLKDLKFLKJDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDLKKFDFDJFKLKLDFDFKDF";
/**
* @param args
*/
public static void main(String[] args) {
statement();
statement2();
String result = statement3();
System.out.println(NUM_ITEMS*LINE_FOR_ITEM.length() == result.length());
}
private static String statement(){
String result = "";
long start = System.currentTimeMillis();
for(int i=0;i<NUM_ITEMS;i++){
result += LINE_FOR_ITEM;
}
System.out.println("String concatention Using Time:"+(System.currentTimeMillis() - start));
return result;
}
private static String statement2(){
StringBuilder result = new StringBuilder();
long start = System.currentTimeMillis();
for(int i=0;i<NUM_ITEMS;i++){
result.append(LINE_FOR_ITEM);
}
System.out.println("String Builder Using Time:"+(System.currentTimeMillis() - start));
return result.toString();
}
private static String statement3(){
StringBuilder result = new StringBuilder(NUM_ITEMS*LINE_FOR_ITEM.length());
long start = System.currentTimeMillis();
for(int i=0;i<NUM_ITEMS;i++){
result.append(LINE_FOR_ITEM);
}
System.out.println("String Builder When Allocat Size Using Time:"+(System.currentTimeMillis() - start));
return result.toString();
}
}
打印结果:
String concatention Using Time:35172
String Builder Using Time:47
String Builder When Allocat Size Using Time:0
true
具有初始大小StringBuilder性能最好,其次StringBuilder,“+”号连接最差,
测试jdk1.6测试,jdk1.6在编译时,已经把"+"号连接转换成StringBuilder,不知道为何性能还是这么差
分享到:
相关推荐
本篇文章将深入探讨在"学学Python_字符串04_字符串方法01"这个主题中的关键知识点,包括基本字符串操作、格式化打印以及高级操作。 首先,我们要了解Python中的字符串是不可变的,这意味着一旦创建了一个字符串,就...
1. **字符串操作**:LabVIEW提供了多种字符串函数,如`String Concatenate`(连接字符串)、`String Split`(分割字符串)、`Find Substring`(查找子字符串)、`Replace Substring`(替换子字符串)等。这些函数...
输入两个字符串s1、s2,将字符串s1、s2中每个小写字母转换为大写字母,再将s2字符串连接到s1串的尾部。 字符串的比较。输入两个字符串s1、s2,比较字符串s1、s2的大小。 数制转换。编写一个将16进制数字串转换成10...
例如,`strcat()` 和 `strncat()` 可以用来连接两个或多个字符串,`strstr()` 可以查找子字符串在主字符串中的位置,`strchr()` 和 `strrchr()` 则分别用于查找字符在字符串中的首次出现和最后一次出现。 此外,...
C语言自定义字符串连接函数 在计算机编程中,字符串连接是指将两个或多个字符串连接成一个新的字符串的过程。在C语言中,标准库函数 strcat() 可以实现字符串连接。然而,在实际编程中,我们有时需要根据具体情况...
10. **Concatenate** 运算符("&"):用于将两个或多个字符串连接在一起。例如,`"Hello " & "World"` 返回 "Hello World"。 这些函数和运算符在处理字符串时非常实用,能够满足多种需求,如搜索、替换、截取、拼接...
例如,在Python中,可以使用`+`符号连接两个字符串,`str[index]`获取指定位置的字符,`str[start:end]`截取子串,`str.find(substring)`查找子串位置,`str.replace(old, new)`替换子串,`str.split(delimiter)`按...
LabVIEW提供了丰富的字符串处理函数库,如“字符串分割”、“字符串连接”和“查找和替换”等,可以帮助在字符串到16进制的转换过程中进行必要的操作。例如,“字符串到数组”函数可以将字符串分解成字符数组,然后...
13. **Join()** 函数:将数组元素合并成一个字符串,中间用指定的分隔符连接。 14. **Format()** 函数:格式化数值字符串,如添加千位分隔符、货币符号等。 15. **LCase()** 和 **UCase()** 函数:将字符串中的...
在描述中提到的“通过传递字符串就可以向上累加”,我们可以理解为这个库提供了一个API接口,允许开发者传入一个或多个字符串,然后返回这些字符串连接后的结果。这种累加可能不仅仅是简单的连接,也可能包括特定的...
4. **字符串处理函数**:C语言中的`strlen()`用于获取字符串长度,`strcpy()`和`strncpy()`用于复制字符串,`strcat()`和`strncat()`用于连接字符串,`strchr()`和`strstr()`用于查找子字符串,这些函数可以辅助我们...
字符串连接就是将一个字符串连接到另一个字符串的末尾,使其组合成一个新的字符串,在字符串处理函数中,strcat 函数具有字符串连接功能。下面是用C语言实现不使用是strcat 函数实现连接两个字符串的功能。 源代码:...
例如,Python 的 `join()` 可以将一个字符列表连接成字符串,`replace()` 用于替换字符串中的特定子串。 6. **源码分析**:压缩包内的源码可能包含各种字符串处理的示例,比如如何根据特定条件分割字符串,如何处理...
在实际应用中,字符串自动填充还常常结合其他字符串操作,如查找替换、截取、连接等,来实现更复杂的文本处理需求。例如,在数据库操作中,自动填充常用于确保字段值满足规定的长度要求;在网络编程中,URL编码也...
它提供了丰富的成员函数,如`length()`(获取字符串长度),`append()`(连接字符串),`find()`(查找子串)以及`replace()`(替换子串)等,使得处理字符串变得简单且高效。 字符串加密通常涉及到对字符序列进行...
3. **字符串连接**:源码可能包含不同的字符串连接方法,比如通过循环逐个字符复制,或者一次性分配足够的内存来存储两个字符串的连接结果。 4. **性能优化**:通过预估所需内存,避免不必要的内存重分配,从而提升...
4. 插入函数:当需要插入新的字符串时,找到合适的插入位置,创建新的节点,然后更新指针以连接新旧节点。 5. 可能还包括遍历和打印链表的功能,以便于观察和验证程序的正确性。 总的来说,这个程序展示了如何使用...
在处理文件时,如果文件内容较大或不确定,我们可以将每行内容视为一个节点,通过指针连接这些节点,形成一个字符串链表。这样,我们可以方便地添加、删除或查找文件中的特定行。 在文件读取过程中,我们可以打开...
3. 字符串拼接:连接两个或更多字符串,如Python的`+`运算符,或Java的`String.concat()`。 4. 子串提取:通过切片或子字符串方法获取字符串的一部分。 5. 字符串查找:查找子串在主字符串中的位置,如Python的`find...
### SQL Server 连接字符串与身份验证详解 #### 一、引言 在数据库开发过程中,正确设置数据库连接字符串及选择合适的身份验证方式至关重要。本文将深入探讨 SQL Server 的连接字符串编写方法及其身份验证机制,...