您的位置:首页 > 编程语言 > Java开发

Java 字符串反转:七种字符串反转的方法

2013-09-13 14:39 387 查看
import java.util.Stack;

public classStringReverse{

/**
* @param s
* @return
*/
publicstatic String reverse1(String s){
int length= s.length();
if(length <= 1)
return s;
String left= s.substring(0, length / 2);
String right= s.substring(length/ 2, length);
return reverse1(right)+ reverse1(left);
}

/**
* @param s
* @return
*/
publicstatic String reverse2(String s){
int length= s.length();
String reverse= "";
for(int i= 0; i< length; i++){
reverse = s.charAt(i)+ reverse;
}
return reverse;
}

/**
* @param s
* @return
*/
publicstatic String reverse3(String s){
char[] array= s.toCharArray();
String reverse= "";
for(int i= array.length- 1; i>= 0; i--){
reverse += array[i];
}
return reverse;
}

/**
* @param s
* @return
*/
publicstatic String reverse4(String s){
returnnew StringBuffer(s).reverse().toString();
}

/**
* @param orig
* @return
*/
publicstatic String reverse5(String orig){
char[] s= orig.toCharArray();
int n= s.length- 1;
int halfLength= n /2;
for(int i= 0; i<= halfLength; i++){
char temp= s[i];
s[i]= s[n- i];
s[n- i]= temp;
}
returnnew String(s);
}

/**
* @param s
* @return
*/
publicstatic String reverse6(String s){
char[] str= s.toCharArray();
intbegin = 0;
intend = s.length()- 1;
while(begin< end){
str[begin]= (char)(str[begin]^ str[end]);
str[end]= (char)(str[begin]^ str[end]);
str[begin]= (char)(str[end]^ str[begin]);
begin++;
end--;
}
returnnew String(str);
}

/**
* @param s
* @return
*/
publicstatic String reverse7(String s){
char[] str= s.toCharArray();
Stack<Character> stack= newStack<Character>();
for(int i= 0; i< str.length; i++){
stack.push(str[i]);
}
String reversed= "";
for(int i= 0; i< str.length; i++)
reversed += stack.pop();
return reversed;
}

/**
* @param args
*/
publicstatic void main(String[] args) {
System.out.println(reverse1("abcdefg"));
System.out.println(reverse2("abcdefg"));
System.out.println(reverse3("abcdefg"));
System.out.println(reverse4("abcdefg"));
System.out.println(reverse5("abcdefg"));
System.out.println(reverse6("abcdefg"));
System.out.println(reverse7("abcdefg"));
}

}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: