字符串的反转及替换

1、字符串反转

(1)递归

public class Reverse {
    public static String test(String str){
      if(str==null||str.length()<=1)
          return str;
      return test(str.substring(1))+str.charAt(0);
    }

    public static void main(String[] args) {
        Reverse reverse=new Reverse();
        String string=reverse.test("abcd");
        System.out.println(string);
    }
}
dcba

(2)charAt方法

public class Reverse {
    public static String test(String str){
        int length = str.length();
        String reverse = "";
        for (int i=0; i<length; i++)
            reverse = str.charAt(i) + reverse;
        return reverse;
    }

    public static void main(String[] args) {
        Reverse reverse=new Reverse();
        String string=reverse.test("abcd");
        System.out.println(string);
    }
}

通过charAt方法分别取出字符串中的每一个字符,并与前面所形成的字符串进行拼接,形成反转的字符串

(3)toCharArray

public class Reverse {
    public static String test(String str){
        char[] array = str.toCharArray();
        String reverse = "";
        for (int i = array.length - 1; i >= 0; i--) {
            reverse =reverse+ array[i];
        }
        return reverse;
    }

    public static void main(String[] args) {
        Reverse reverse=new Reverse();
        String string=reverse.test("abcd");
        System.out.println(string);
    }
}

此方法是将字符串转换为字符数组,然后对字符数组进行遍历(倒序)

(4)StringBuiler或StringBuffer的reverse()方法

public class Reverse {
    public static String test(String str){
        StringBuilder stringBuilder=new StringBuilder(str);
        return stringBuilder.reverse().toString();
        
    }

    public static void main(String[] args) {
        Reverse reverse=new Reverse();
        String string=reverse.test("abcd");
        System.out.println(string);
    }
}

2、字符串替换

(1)replace方法:

public class Reverse {
    public String test(){
      String str = "abcde";
      String s = str.replace('c','3');
      return s;
    }

    public static void main(String[] args) {
        Reverse reverse=new Reverse();
        String string=reverse.test();
        System.out.println(string);
    }
}

一次只能将一个字符替换为另一个字符

(2)replaceAll方法

public class Reverse {
    public String test(){
      String str = "abcdeab";
      String s = str.replaceAll("ab","aabb");
      return s;
    }

    public static void main(String[] args) {
        Reverse reverse=new Reverse();
        String string=reverse.test();
        System.out.println(string);
    }
}
aabbcdeaabb

将所有相同的字符串替换为要替换的字符串

(3)replaceFirst

public class Reverse {
    public String test(){
      String str = "abcdeab";
      String s = str.replaceFirst("ab","aabb");
      return s;
    }

    public static void main(String[] args) {
        Reverse reverse=new Reverse();
        String string=reverse.test();
        System.out.println(string);
    }
}

replaceFirst与replaceAll方法不同,replaceFirst只替换第一次出现的字符串

原文地址:https://www.cnblogs.com/zhai1997/p/12728007.html