1、String a="abc"   和   String a = new String("abc")的区别?2、有一个字符串只想去掉右边的空格怎么做??

解决方案 »

  1.   

    String a="abc"只创建了一个对象a;
    String a = new String("abc")创建了两个对象
      

  2.   

    第一个问题回答的太简单了我也是这么回答的人家摇摇头。
    第二个问题trim()去所有的空格现在是只去右边的。
      

  3.   

    trim()  返回字符串的副本,忽略前导空白和尾部空白。
    String aa=" abc ";System.out.println("==="+aa.substring(0,aa.length()-1));
    String a="abc" 创建一个引用对象,并且这个引用对象指向abc,
    String a=new String("abc") 创建一个引用对象,和一个字符串对象,且引用对象指向abc
      

  4.   

    String a="abc" 創建"abc"對象,a引用此對象"abc"
    String a = new String("abc")  克隆“abc”對象,a引用此克隆對象new String("abc")用split()先切判斷最后子串后再拼
      

  5.   

    第一个,楼上说的应该可以了,第二个StringUtils.substringAfter("  aaaa", " ");
      

  6.   

    第一个 只有一个对象 "abc" 常量池中
    第二个 有两个对象 一个是"abc" 一个是new String("abc")
      

  7.   

    第一个 :如果栈中已经有abc,他就不会再建一个abc对象,而是直接引用已经存在的abc
    第二个 :不管有没有存在abc,都会在堆中建立一个String对象。
      

  8.   

    1.String a="abc" 如果堆中已经有abc,他就不会再建一个abc对象,而是直接引用已经存在的abc; 
    String a = new String("abc");创建了两个对象.堆中"abc",栈中创建一个 a 的引用.2. String sTemp = "abc  ";
       去掉空格: sTemp.trim();
      

  9.   

    2:找到第一个非空格的字符,从这个位置分开,对后面的str调用trim,和前部分的合并。复杂了~~~
      

  10.   

    第2问,从字符串的最后开始,找到第一个非空字符,在用substring取前面的字符串
      

  11.   

    不明白可以看下trim的源代码,写得很好,它是先取左边,在取右边,
      

  12.   

    第二个问题,我觉得可以现调用reverse方法,然后substring第一个非空字符开始的子串,然后再reverse,这样效率不是很高,抛砖引玉勒
      

  13.   

    2:
    StringBuffer sb=new StringBuffer(" aa      ");
    while(sb.lastIndexOf(" ")==sb.length()-1)
    sb.deleteCharAt(sb.length()-1);
      

  14.   

    string s = "abc";
    是创建一个对象,他把字符串放到了字符串池里面,该字符串池是公用的....string s = new string ("abc");
    是创建一个引用, 他只是将abc的指针放到了 s ,要用的时候是将指针去出来,用指针去取值.
      

  15.   

    第二个自己写吧 比如
    public String trim(String str) {
    char[] charArray = str.toCharArray();
    int len = charArray.length - 1;
    int end = len;
    for(int i=len; i>=0; i--) {
    if(charArray[i] != ' ') 
    break;
    else
    end--;
    }
    return str.substring(0, end);
    }
      

  16.   

    pengranxiang() ( ) 信誉:100  
    ----------------你这个方法很好,但这里有点小小的错.我改了.
    public String trim(String str) {
    char[] charArray = str.toCharArray();
    int len = charArray.length;
    int end = len;
    for(int i=len-1; i>0; i--) {
    if(charArray[i] != ' ') 
    break;
    else
    end--;
    }
    return str.substring(0, end);
    }
      

  17.   

    str = "  abc ";
    str = "1" + str;
    str = str.trim().substring(1);
      

  18.   

    IhaveGotYou(扬扬) 
    的方法不错
      

  19.   

    public static void testTrimRight()
    {
    String a = "  abc  " ;
    char[] array = a.toCharArray() ;
    int i  ;
    for(i=array.length-1 ;i>=0 ;i--)
    {
    if(array[i] != ' ')
    break ;
    }

    System.out.println(a.substring(0, i+1));


    }