您的位置:首页 > 其它

字符串反转,单词反转

2016-12-12 18:37 369 查看
一、字符串反转,共搜集了 7 种方法

public class StringReversed {
public static void main(String[] args) {
String s = "abcd,efgh";
System.out.println("原字符:" + s);
System.out.println("反转后:" + reverse2(s));
reverse1(s);
}

public static void reverse1(String s) {		//方法一
/*		char[] c = new char[s.length()];
for(int j = 0, i = s.length() - 1; i >= 0; i--) {
c[j++] = s.charAt(i);
}*/
char[] c = s.toCharArray();			//方法二
for(int i = 0; i < s.length() / 2; i++) {
char temp = c[i];
c[i] = c[s.length() - 1 - i];
c[s.length() - 1 - i] = temp;
}
for(char l: c)
System.out.print(l);
}

public static String reverse2(String s) {
//		return new StringBuffer(s).reverse().toString();	//方法三

//		return new StringBuilder(s).reverse().toString();	//方法四

/*		StringBuffer sb = new StringBuffer();			//方法五
for(int i = s.length() - 1; i >= 0; i--) {
sb = sb.append(s.substring(i, i + 1));
}
return sb.toString();*/

/*		int len = s.length();				//方法六
if (len <= 1) {
return s;
}
else {
String left = s.substring(0, len / 2);
String right = s.substring(len / 2, len);
return reverse(right) + reverse(left);
}*/

String result = "";			//方法七
for(int i = s.length() - 1; i >= 0; i--) {
String temp = s.substring(i, i + 1);
result += temp;
}
return result;
}
}


网上还有一些其他方法,比如利用栈的“后进先出”的特性。等等。

二、单词反转

package reverse;

public class WordsReversed {
public static void main(String[] args) {
String s = "one two three four five six seven eight nine ten";
System.out.println("原句子:" + s.toString());
System.out.println("反转后:" + reverse(s));
}

private static String reverse(String s) {
// TODO Auto-generated method stub
StringBuffer sb = new StringBuffer();
String[] words = s.split(" ");
for(int i = words.length - 1; i >= 0; i--) {
sb.append(words[i]).append(" ");
}
return sb.toString();
}
}

单词的反转也有很多方法,比如可以用首尾交换的方法实现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: