黑马程序员技术交流社区
标题:
求解。。字符串连接问题,
[打印本页]
作者:
高梦晓
时间:
2013-4-14 23:02
标题:
求解。。字符串连接问题,
本帖最后由 高梦晓 于 2013-4-15 20:08 编辑
public class AppendRevertString {
public static void main(String[] args) {
StringBuffer s2=null;
StringBuffer s1=new StringBuffer("12345");
System.out.println(s1);
System.out.println("倒序后得到的结果是:");
s2=s1.reverse();
s1.append(s2);
System.out.println(s1);
}
}
复制代码
作者:
王大斌
时间:
2013-4-14 23:27
你想问连接的什么问题?
作者:
smile_joe
时间:
2013-4-14 23:32
你这样不是在把方法练习了一遍吗?看不出你想知道什么?
作者:
Asan
时间:
2013-4-14 23:39
还是不知道你i问什么,你是想问输出s1为什么不等于5432112345??
作者:
陈中岩
时间:
2013-4-14 23:46
/**求解。。字符串连接问题,
*
* @author Chen_zyan
*/
public class AppendRevertString {
public static void main(String[] args)
{
StringBuffer s2=null;
StringBuffer s1=new StringBuffer("12345");
//打印s1的字符串
System.out.println(s1);
System.out.println("倒序后得到的结果是:");
//将s1中的字符串翻转后赋值给s2,这里s2的值为54321
s2=s1.reverse();
//s1链接s2,不知道你是不是想问这里,append();将指定的数据作为参数,添加到已有数据的结尾处.
//因此s1的值与s2的值同为5432154321
s1.append(s2);
//打印s1
System.out.println(s1);
}
}
复制代码
作者:
HM邱刚权
时间:
2013-4-15 08:44
楼上v5 楼主没有说什么问题你都回答了! V5
作者:
黄玉昆
时间:
2013-4-15 12:11
如果有问题,请将问题阐述清楚,配以文字说明,谢谢
作者:
刘永建
时间:
2013-4-15 12:35
看来你并没有完全理解String 和StringBuffer,这两个类用的非常多,建议你在拼接字符串的时候使用StringBuffer类,
StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。来看一下下面的总结:
在java中有3个类来负责字符的操作。
1.Character 是进行单个字符操作的,
2.String 对一串字符进行操作。不可变类。
3.StringBuffer 也是对一串字符进行操作,但是可变类。
String:
是对象不是原始类型.
为不可变对象,一旦被创建,就不能修改它的值.
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.
String 是final类,即不能被继承.
StringBuffer:
是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象
它只能通过构造函数来建立,
StringBuffer sb = new StringBuffer();
note:不能通过付值符号对他进行付值.
sb = "welcome to here!";//error
对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer
中付值的时候可以通过它的append方法.
sb.append("hello");
字符串连接操作中StringBuffer的效率要比String高:
String str = new String("welcome to ");
str += "here";
的处理步骤实际上是通过建立一个StringBuffer,让侯调用append(),最后
再将StringBuffer toSting();
这样的话String的连接操作就比StringBuffer多出了一些附加操作,当然效率上要打折扣.
并且由于String 对象是不可变对象,每次操作Sting 都会重新建立新的对象来保存新的值.
这样原来的对象就没用了,就要被垃圾回收.这也是要影响性能的.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2