翻轉單詞順序(Java 劍指offer)

牛客最近來了一個新員工Fish,每天早晨總是會拿着一本英文雜誌,寫些句子在本子上。同事Cat對Fish寫的內容頗感興趣,有一天他向Fish借來翻看,但卻讀不懂它的意思。例如,“student. a am I”。後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是“I am a student.”。Cat對一一的翻轉這些單詞順序可不在行,你能幫助他麼?

public class stringReverse {

	public String ReverseSentence(String str) {
		
		//trim() ?
		if("".equals(str.trim())) return str;
		String[] word = str.split(" ");
		
		StringBuffer sb = new StringBuffer();
		for(int i=word.length-1;i>=0;i--){
			sb.append(word[i]+" ");
		}
	
		return sb.toString().trim();
	}
	
	public String ReverseSentence3(String str) {
	       String res="",tmp="";
	        for(int i=0;i<str.length();i++){
	            char c=str.charAt(i);
	            if(c==' '){
	                res=" "+tmp+res;
	                tmp="";
	            }else{
	                tmp=tmp+String.valueOf(c);
	            }
	        }
	        if(tmp.length()==0)
	            return res;
	        return tmp+res;
	        //if(res.length()==0)return res;
	       // return tmp+res;
	}
	
	//
	public String ReverseSentence4(String str) {
		if(str == null){ return null;}
		if(str.trim().equals("")){
			return str;
		}
		
		String[] strings = str.split(" ");
		StringBuilder sBuilder = new StringBuilder();
		for(int i = strings.length-1;i>=0;i--){
			if(i==0){
				sBuilder.append(strings[i]);
			}else{
				sBuilder.append(strings[i]);
				sBuilder.append(" ");
			}
		}
		
		String string1 = sBuilder.toString();
		return string1;
	}
	
	public static void main(String[] args) {
		stringReverse st = new stringReverse();
		String str="world. a Wonderful";
		System.out.println(st.ReverseSentence1(str));
	}
}

//https://www.nowcoder.com/profile/982154/codeBookDetail?submissionId=150148

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章