黑马程序员技术交流社区

标题: 不用第三个变量让2个字符串交换,希望对大家理解String有所帮助 [打印本页]

作者: pzfpang449    时间: 2013-2-8 17:41
标题: 不用第三个变量让2个字符串交换,希望对大家理解String有所帮助
String begin = "1000-06-01";
String end = "1000-06-30";
begin = begin + end;
end = begin.substring(10);//end ="1000-06-01"
begin = begin.substring(0,10);//begin = "1000-06-30"

用String java.lang.String.substring(int beginIndex, intendIndex);
来截取字符串来达到互换的目的
Java代码  
public void method1(){  
        String a = "字符串a" ;  
        String b = "字符串b" ;  
        a = a + b;  
        b = a.substring(0,(a.length()-b.length()));  
        a = a.substring(a.length()-b.length(),a.length());//主要此时b.length()时转换前a的长度  
        System.out.println("a:"+a);  
        System.out.println("b:"+b);  
    }

作者: 胡发友    时间: 2013-2-8 21:58
同学,还是慢点,思考好了再发,我通过实验证明,你这个方法,只能用在字符串长度相等的情况下,如果不等,就会产生异常了

参考参考我的做法:这个方法才能实现两个字符串交换

package com.ifeng;

public class StringDemo {
        public static void main(String [] args){
               
                String str1 = "abcddddddkkkkkkkkjhhkhf";
                String str2 = "abckkkkkkkkkkkjkjjklj";
               
                str1 = str1+str2;
               
                int len = str1.length()-str2.length();
               
                str2 = str1.substring(0,(str1.length()-str2.length()));
                str1 = str1.substring(len,str1.length());
               
                System.out.println("a:" + str1 +"::"+str1.length());
                System.out.println("b:"+str2 + "::" +str2.length());
               
        }
}






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