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中字符串常用的方法:
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字符串编码总结
- JAVA编程思想学习总结:第十三章字符串
- Java学习总结:飘逸的字符串
- 黑马程序员-自己总结的java学习笔记(3)java字符串对象。
- java-字符串学习总结
- Java学习笔记-字符串总结
- Java字符串学习总结
- Java学习总结--字符串String类和基本的数据类型有什么区别
- Java学习手记--运算符和字符串的操作
- Java学习总结
- 关于pl/sql调用java的学习总结(附代码)
- java学习总结-抽象类
- Java语法总结 - 字符串
- Java 正则表达式学习总结和一些小例子
- Java学习:Java字符串处理
- JAVA与C++::关于JNI中文字符串操作问题总结
- JAVA学习总结之JAVA的安全性_数组(未完待续)
- Java字符串使用总结
- Java线程学习和总结
- Java中的String、StringBuffer和Math类--学习java语言及其网络应用总结