reverse the String

Given an input string, reverse the string word by word.
For example,
Given s = "the sky is blue",

return "blue is sky the".

初步:

package leetcode20150616;
/*
 * Given an input string, reverse the string word by word.
For example,
Given s = "the sky is blue",
return "blue is sky the".

思路:
1:既然字符串要按照某一种顺序显示,显然是要把各个部分分割开,正好String 函数中有一个split()
函数,这样就可以完成一个分割
2:分割之后的字符串保存在一个数组当中,这样具体按照要求的顺序显示就可以了!
按照如上思路很快解决了问题,看似解决了问题,但是很多细节都没有考虑,譬如:
1:输入的字符串前后都有空格怎么办?
2:两个单词之间有多个空格如何显示?
 */
public class ReverseString {

	
	
	public String ReverStr(String givStr) {
		String [] arrString = givStr.split(" ");
		String returnString = "";
		int length = arrString.length;
		for(int i=length-1; i>=0; i--) {
			returnString += arrString[i]+" ";
		}
		return returnString;
	}
	
	public static void main(String [] args) {
		ReverseString rs = new ReverseString();
		String returnString = rs.ReverStr("I     love U");
		System.out.println(returnString);
	}
}


现在只是解决了基本的问题,但是要解决上面提到的几个问题:

按照如上思路很快解决了问题,看似解决了问题,但是很多细节都没有考虑,譬如:
1:输入的字符串前后都有空格怎么办?
2:两个单词之间有多个空格如何显示?

<pre name="code" class="java">package leetcode20150616;
/*
 * Given an input string, reverse the string word by word.
For example,
Given s = "the sky is blue",
return "blue is sky the".

思路:
1:既然字符串要按照某一种顺序显示,显然是要把各个部分分割开,正好String 函数中有一个split()
函数,这样就可以完成一个分割
2:分割之后的字符串保存在一个数组当中,这样具体按照要求的顺序显示就可以了!
按照如上思路很快解决了问题,看似解决了问题,但是很多细节都没有考虑,譬如:
1:输入的字符串前后都有空格怎么办?
2:两个单词之间有多个空格如何显示?
 */
public class ReverseString {

	public String ReverStr(String givStr) {
		///将输入的字符串先去掉前后多余的空格
		///两个字符串中可能有多个空格,这样用正则表达式来更合适
		///正则表达式中\s代表任意的空白符,因为写在“”中,所以需要转意\\s,+表示大于等于1个
		String regex ="\\s+";
		String [] arrString = givStr.trim().split(regex);
		String returnString = "";
		int length = arrString.length;
		for(int i=length-1; i>=0; i--) {
			returnString += arrString[i]+" ";
		}
		return returnString;
	}
	
	public static void main(String [] args) {
		ReverseString rs = new ReverseString();
		String returnString = rs.ReverStr("   I     love U  ");
		System.out.println(returnString);
	}
}


 这样就Ok了 


同时看了一下这位兄弟的解决方法http://blog.csdn.net/bruce_6/article/details/40044483

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值