2012-04-18 55 views
0

關於使用StringBuffer而不使用String.split的反向字。
例如 反向
世界,你好
輸出必須java:使用StringBuffer而不使用String.split的反向字

olleh dlrow 

dlrow olleh 

任何想法,使這一計劃?

+0

你已經做了什麼?請張貼一些代碼... – Crazenezz 2012-04-18 09:01:39

+0

看起來像作業,聞起來像作業... – mcfinnigan 2012-04-18 09:02:55

+0

我的代碼只能打印「dlrow olleh」... – heyman 2012-04-18 09:05:56

回答

0

導入庫並使用此函數。

import org.apache.commons.lang.StringUtils; 

String reverseWords(String string) { 
    return StringUtils.reverseDelimited(StringUtils.reverse(string), ' '); 
} 
+0

既然這是作業,我敢打賭,老師堅持認爲他們重新推動了車輪。但是這個人現在可以提示並閱讀你提出的解決方案的來源。 – 2012-04-18 09:09:50

+0

可以不使用任何進口fucnction? – heyman 2012-04-18 09:12:20

+0

我的老師說這個程序使用了subString和StringBuffer。 – heyman 2012-04-18 09:13:50

0

這聽起來像一個家庭作業問題,所以不是給你實際的代碼,我會告訴你我在使用僞代碼的想法。

假設:你必須使用一個StringBuffer來完成它。單詞由空格分隔。您不能使用除StringBuffer之外的其他任何內容。

你需要寫一個方法叫做reverse

/** 
* This method reverse the word starting at startIndex 
* and of length wordLength. For example: 
* StringBuffer buf = new StringBuffer("hello world"); 
* reverse(buf, 0, 5); 
* will result in buf being "olleh world" 
*/ 
reverse(StringBuffer s, int startIndex, int wordLength) 

/* Now the pseudo code */ 
Given StringBuffer sb; 
Find all the indexes of all the spaces in sb; 
Using the indexes found to calculate the startIndex of each word and the lengths of the word; 
call reverse for each of the calculated indexes and lengths; 

注:這只是衆多方法來解決你的問題之一。

0

這裏是進行一種方法:

User a result buffer to store the final string reversed word by word 
Use a temp buffer to store each word you fond in the original string 

Iterate over the chars in your buffer. 
    // Identify a word: a word is terminated when you find a space 
    If the actual char is not space then save it to temp buffer 
    If the actual char is a space then you have a word witch is stored in temp buffer 
     reverse that temp buffer and add it to the result buffer 
     add a space the the result buffer 
     clear the temp buffer so you can save the next word in it 

這裏是如何看起來像在代碼

刪除,因爲這是功課;-)

輸入:

" HeLlo world " 

輸出:

' olLeH dlrow '