String reversal and replacement

1. String inversion

(1) Recursion

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 method

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);
    }
}

Take out each character in the string separately through the charAt method, and splice with the previously formed string to form a reversed string

(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);
    }
}

This method is to convert the string to a character array, and then traverse the character array (in reverse order)

(4) The reverse () method of StringBuiler or StringBuffer

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. String replacement

(1) Replace method:

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);
    }
}

Only one character can be replaced with another character at a time

(2) replaceAll method

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

Replace all the same strings with the string to be replaced

(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 is different from replaceAll, replaceFirst only replaces the first occurrence of the string

 

Guess you like

Origin www.cnblogs.com/zhai1997/p/12728007.html