黑马程序员技术交流社区

标题: java字符串的问题(已解决) [打印本页]

作者: 宋浩    时间: 2012-6-7 10:18
标题: java字符串的问题(已解决)
本帖最后由 宋浩 于 2012-6-8 12:05 编辑

String str="base";
str.concat("ket");
System.out.print(str);
最后输出的结果是base 这是为什么 不应该是baseket么?
作者: 刘克方    时间: 2012-6-7 10:22
标题: String str="base";
本帖最后由 刘克方 于 2012-6-7 10:32 编辑

你的问题:String str="base";
str.concat("ket");
System.out.print(str);
最后输出的结果是base 这是为什么 不应该是baseket么?
解答:str.concat("ket");该方法返回一个String对象来保存串接后的字符串,而原来的str字符串不会有变化;
所以你可以定义一个新的字符对象来接收串联后的结果:String str2=str.concat("ket");
然后System.out.print(str2);这样就可以得到你想要的结果了




作者: 任睦强    时间: 2012-6-7 10:22
兄弟  你没有 赋值回去  
应该这么写
String str="base";
str=str.concat("ket");
System.out.print(str);
这样就是baseket


作者: 马林贺    时间: 2012-6-7 10:25
  String str="base";
  str=str.concat("ket");
  System.out.print(str);
  这样就是你想要的结果了。

作者: 罗文杰    时间: 2012-6-7 10:26
concat()方法是有在传入参数字符串长度是0的时候才返回此 String 对象。否则创建一个新的 String 对象,所以你这里str.concat("ket")是一个新的字符串对象,你打印的还是以前的str对象,第二句改成str = str.concat("ket");就可以了

作者: 张天天    时间: 2012-6-7 13:07
package luntantest;

public class Test6 {
        public static void main(String[] args) {
                String str="base";
            String  str1 = str.concat("ket");
         System.out.println(str);
         System.out.println(str.concat("ket"));
         
         System.out.println(str1);
        }
       
       
         }
输出结果是
base
baseket
baseket
你看了这个应该明白了吧
作者: 胡团乐    时间: 2012-6-7 13:22
public static void main(String[] args) {
        String str = "base";
        str=str.concat("ket");
        str=str.concat("ball");
        System.out.print(str);
}
这么写就好了,因为String是不可变的,直接给str添加是不行的,可以重新给赋值;
str=str.concat("ket");相当于给str重新赋值了;

作者: 胡卿    时间: 2012-6-7 22:52
String str="base";
str=str.concat("ket");// 赋值回str
System.out.print(str);





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2