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