问题一:
String str1="Hello ";
String str2="World!";
String str3=str1+str2;System.out.println(str3);请问str1和str2它们是引用存的是地址分别指向两个不同字面量,但是str3为什么可以指向两个字面量呢?问题二:
String str="abcd";
请问String自带的什么方法可以取出其中的某个字符赋给个char?
还有用什么方法可以将str指向的字符串变成"aBcD"呢?

解决方案 »

  1.   

    第二个问题的第一个小题:用chatAt函数
      

  2.   

    String str3=str1+str2;
    这句执行后会在内存中生成另外一个对象而str3会指向另一个内存地址,并不是指向“两个字面量“的
      

  3.   

    还有用什么方法可以将str指向的字符串变成"aBcD"呢?你这个例子可以使用repalce()
      

  4.   

    String str3=str1+str2;是通过将str1,str2转换成stringbuffer对象,然后再将两者连接,最有调用toString()方法生成一个新的String对象,str3对象引用的是新生成的对象;
    String对象的内容是不能改变的,所以怎么将str指向的内存区的内容改动,我也不知道,等高手过来吧:)如果光要效果可以用一下的方法
    学习一下
    public class Test {

    public static void main(String[] args) {
    String str ="abcd";
                      char [] temp = str.toCharArray();
    for(int i=1 ;i<temp.length;i++)
    {
    temp[i] =  Character.toUpperCase(temp[i]);
    }
        
    System.out.print(new String(temp));


    }
    }
      

  5.   

    String str=new String("abcd");这样有办法实现将str指向的字符串变成"aBcD"吗?