反转字符串的四种方法

1、使用StringBuffer自带的方法实现

public String reverse1(String str) {

    if(str == null || str.length()<=1){
        return str;
    }
    return new StringBuffer(str).reverse().toString();
}

2、 适当的使用StringBuffer实现

public String reverse2(String str) {

    if(str == null || str.length()<=1){
        return str;
    }
    StringBuffer result = new StringBuffer(str);
    int strLength = str.length();
    System.out.println("=========>strLength:"+strLength);

    for(int i = 0; i < strLength>>1; i++){
        int swapIndex = strLength-1 -i;
        System.out.println("====>swapIndex:"+swapIndex);
        char swap = result.charAt(swapIndex);
        result.setCharAt(swapIndex, result.charAt(i));
        result.setCharAt(i, swap);
    }
    return result.toString();
}

3、 使用数组方式实现

public String reverse3(String str) {

    if(str == null || str.length()<=1){
        return str;
    }
    char[] chars = str.toCharArray();
    int right = chars.length - 1;

    for(int left=0;left<right;left++){
        char swap = chars[left];
        chars[left] = chars[right];
        chars[right--] = swap;
    }
    return new String(chars);
}

4、使用StringBuffer追加的方式实现

public String reverse4(String str) {
    if(str == null || str.length()<=1){
        return str;
    }
    StringBuffer reverse = new StringBuffer(str.length());
    for(int i= str.length()-1; i>=0; i--){
        reverse.append(str.charAt(i));
    }
    return reverse.toString();
}

你可能感兴趣的:(算法)