给大家介绍其中常用和不常用的将字符串翻转过来的方法 :
复制代码代码如下 :
importer java.util.Stack ;
classe publique StringReverse {
chaîne statique publique inverse1 (chaîne s) {
int longueur = s.longueur();
si (longueur <= 1)
retourner s ;
Chaîne gauche = s.substring(0, longueur / 2);
Chaîne droite = s.substring(longueur / 2, longueur);
return reverse1 (droite) + reverse1 (gauche);
}
chaîne statique publique reverse2 (chaîne s) {
int longueur = s.longueur();
Chaîne inversée = "" ;
pour (int i = 0; i < longueur; i++)
inverse = s.charAt(i) + inverse ;
retour inversé ;
}
chaîne statique publique reverse3 (chaîne s) {
char[] array = s.toCharArray();
Chaîne inversée = "" ;
pour (int i = array.length - 1; i >= 0; i--)
inverse += tableau[i];
retour inversé ;
}
chaîne statique publique reverse4 (chaîne s) {
renvoie un nouveau StringBuffer(s).reverse().toString();
}
chaîne statique publique reverse5 (chaîne orig) {
char[] s = orig.toCharArray();
int n = s.longueur - 1 ;
int demi-Longueur = n / 2;
pour (int i = 0; i <= halfLength; i++) {
char temp = s[je];
s[je] = s[n - je] ;
s[n - i] = temp;
}
renvoie de nouvelles chaînes ;
}
chaîne statique publique reverse6 (chaîne s) {
char[] str = s.toCharArray();
int début = 0 ;
int end = s.length() - 1;
tandis que (début < fin) {
str[début] = (char) (str[début] ^ str[fin]);
str[end] = (char) (str[begin] ^ str[end]);
str[début] = (char) (str[fin] ^ str[début]);
commencer++;
fin--;
}
renvoie une nouvelle chaîne (str);
}
chaîne statique publique reverse7 (chaîne s) {
char[] str = s.toCharArray();
Stack<Character> stack = new Stack<Character>();
pour (int i = 0; i < str.length; i++)
stack.push(str[i]);
Chaîne inversée = "" ;
pour (int i = 0; i < str.length; i++)
inversé += stack.pop();
retour inversé ;
}
}