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

JAVA字符串翻转学习总结

2017-08-18 13:21 447 查看
java中字符串翻转方法学习和总结
java中字符串常用的方法:
substring(),indexOf(),reverse(),charAt(),toCharArray()

public class ReverseString {
public static String rev1(String s) { //方法1
int length = s.length();
String rev = "";
for (int i = 0; i < length;i++)
reverse = s.charAt(i) +rev; //每次往前面添加
return rev;
}

public static String rev2(String s) { //方法2
char[] array = s.toCharArray();
String rev = "";
for (int i = array.length - 1;i >= 0; i--)
rev += array[i]; //由后向前添加

return rev;
}

public static String rev3(String s) { //方法3
int length = s.length();
if (length <= 1)
return s;
String left = s.substring(0,length / 2); //截取前一半
String right =s.substring(length / 2, length);//截取后一半
return rev3(right)+ rev3(left); //递归
}

public static String reverse4(Strings) { //方法4
return new StringBuffer(s).reverse().toString(); //使用JDK中的方法
//return newStringBuilder(s).reverse().toString();
}

public static String rev5(Stringorig) { //方法5
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;
}
return new String(s);
}

public static String rev6(String s) {//方法6
char[] str = s.toCharArray();
Stack<Character> stack =new Stack<Character>(); //利用stack的先进后出
for (int i = 0; i <str.length; i++)
stack.push(str[i]);

String rev = "";
for (int i = 0; i <str.length; i++)
rev+= stack.pop();

return rev;
}

public static String rev7(String s) {//方法7

char[] str = s.toCharArray();

int begin = 0;
int end = 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--;
}

return new String(str);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java 字符串 翻转