StringBuffer sb = new StringBuffer("dfdsfads,");
sb.deleteCharAt(sb.length()-1);
System.out.println(sb);
StringBuffer sb = new StringBuffer("dfdsfads,");
sb.deleteCharAt(sb.length()-1);
System.out.println(sb);
public static void main(String[] args) {
String str[] = {"hello", "awesome", "java", "world"};
StringBuffer
buf = new
StringBuffer
();
for (int i = 0; i < str.length; i++) {
buf.append(str[
StringBuilder
productcode = new
StringBuilder
();
productcode.Append("1,2,");
//productcode.Length=4;
productcode = productcode.Remove(productcode.Length-1, 1) ;//productcode.Length-1=3;
var productcode1 = productcode.ToString();//produ.
2.delete()
方法
和deleteCharAt()
方法
delete()
方法
和deleteCharAt()
方法
都是用来
删除
StringBuffer
字符
串指定
字符
索引的
方法
,其中
delete(int a,int b)
方法
:包含两个参数,使用时
删除
索引...
在微信公众号看到了这篇文章,把String,
StringBuilder
,
StringBuffer
的区别整的明明白白的。
作者 微信公号“Java极客技术”。
文章链接:https://mp.weixin.qq.com/s/2-Ror2TBEoCGW-o7tdUD0A
在深入学习
字符
串类之前, 我们先搞懂JVM是怎样处理新生
字符
串的. 当你知道
字符
串的初始化细节后, 再去写 Strings="hel...
String和
StringBuilder
和
StringBuffer
,这三个都是值得深究一翻的,可能很多人会说,实在不行的话,都全部用
StringBuilder
,啥事没有,我不能说你的想法事不正确的,但是我可以给出更好的建议。下面简单介绍一下这三个类。
String类
在我们平时的使用当中很容易不注意到的是,自己写的代码很容易发生了装箱的操作(把值类型转换为引用类型)。就比如很常见的,
一个
字符
串拼接
string str=9+test; 通过查看IL代码可以知道这里发生了装箱的操作。所以建议使用(在把值类型转换为
字符
串的时候,记得用ToString
方法
)。所以平时写代码的时
StringBuilder
s = new
StringBuilder
("java,");
s.deleteCharAt(s.lenth()-1);
System.out.println(s)
//结果为java
deleteCharAt()
删除
指定位置的
字符
判断
字符
串的
最后
一个
字符
如果是;,那么就
删除
这个
字符
if (sb.length() > 0 && sb.charAt(sb.length() - 1) == ';') {
sb.deleteCharAt(sb.length() -1 );
StringBuilder
和
StringBuffer
都是Java中用于操作
字符
串的类,它们的主要区别在于线程安全性和性能。
StringBuffer
是线程安全的,它的
方法
都是同步的,也就是说,当多个线程同时访问同
一个
StringBuffer
对象时,不会发生不一致的情况。这个特性也使得
StringBuffer
比较慢,因为每个
方法
都需要进行同步处理,从而导致了一定的性能损失。
StringBuilder
则是非线程安全的,它的
方法
都不是同步的,也就是说,当多个线程同时访问同
一个
StringBuilder
对象时,可能会发生不一致的情况。但是,由于它不需要进行同步处理,所以它的性能比
StringBuffer
更高。
因此,如果在单线程环境下操作
字符
串,建议使用
StringBuilder
,如果在多线程环境下操作
字符
串,建议使用
StringBuffer
。