字符串反转,单词反转

一、字符串反转,共搜集了 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();
	}
}

单词的反转也有很多方法,比如可以用首尾交换的方法实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值