导航:首页 > 编程语言 > java两个字符串连接

java两个字符串连接

发布时间:2022-10-25 13:55:09

java怎么把2个字符串拼接在一起

String类的方法:

①利用运算符"+"

②public String concat(String str)进行字符串的拼接操作

StringBuffer的方法:

①public StringBuffer append(String str)将str添加到当前字符串缓冲区的字符序列的末尾

②public StringBuffer insert(int offset,String str)在当前字符串缓冲区的字符序列的下标

索引offset插入str。如果offset等于旧长度,则str添加在字符串缓冲区的尾部

如图所示

② Java字符串连接

1. String类是final修饰的不可变类,+号运算,会创建一些对象进行操作。

StringBuffer与StringBuilder,是可改变的对象,每当使用这两个对象对字符串做操作时, 实际上是在一个对象上操作的,所以速度快 .


2. StringBuilder:线程非安全的

StringBuffer:线程安全的

3. 大量字符串数据时的性能 StringBuilder > StringBuffer >String


使用情况的说明:

1. String + : 适合比较少量的字符串数据拼接

(比如System.out.println("姓名:"+name+"年龄:"+age))


2. StringBuilder : 大量字符串数据, 单线程下使用

(比如,一个main线程里进行,无其他线程)


3.StringBuffer : 大量字符串数据, 多线程下使用

(比如,多个Thread去操作)

③ java 中concat连接两个字符串,其中一个设为null,那返回的值就是null吗

不是。

或b任一为null,均会抛出空指针异常;

public String concat(String str) {

int otherLen = str.length();

if (otherLen == 0) {

return this;

}

int len = value.length;

char buf[] = Arrays.Of(value, len + otherLen);

str.getChars(buf, len);

return new String(buf, true);
}

④ java两个字符串使用+拼接字符串,在内存中是怎样实现的

你好:c存放内存,str存放内存,之后加好连接后指向一个新的内存存放reslut(str结果),new的话都会在堆中创建,在栈(Stack)中如果数值存在的话,就不会创建了。以下就是说明的+的实现过程,他实际上是new的,所以在堆中会创建,即占用新的内存,如果str不等于result的话,还会在栈(Stack)中创建。
str += "c";等效于:str = new StringBuffer(str).append("c").toString();
虽然编译器对字符串加号做了优化,它会用StringBuffer的append方法进行追加。再是通过toString方法转换成String字符串的。
它与纯粹的append方法是不同的:
一是每次都要创建一个StringBuilder对象;
二是每次执行完毕都要调用toString方法将其转换为字符串。

阅读全文

与java两个字符串连接相关的资料

热点内容
编译速度与相关 浏览:294
我的奋斗罗永浩pdf微盘 浏览:505
方舟编译器优化怎么样 浏览:868
pclogo填充命令 浏览:242
无锡php工作机会多么 浏览:52
当程序员知道客户还在用ie 浏览:889
python运维监控系统 浏览:994
windows泄露代码编译 浏览:406
云服务器有无限流量吗 浏览:656
奔腾t55压缩比 浏览:620
python不弹出cmd窗口 浏览:922
cad解压不到e盘 浏览:709
phpfopen用法 浏览:805
cuda文件和cpp混合编译 浏览:191
鸿蒙自带主题在哪个文件夹 浏览:941
c写一个简单的中文编译器 浏览:413
反编译图片怎么弄 浏览:100
水空调需要压缩机吗 浏览:824
h3cdns配置命令 浏览:735
曹操传找不到视频解压文件 浏览:939