關於使用StringBuffer而不使用String.split的反向字。
例如 反向
世界,你好
輸出必須java:使用StringBuffer而不使用String.split的反向字
olleh dlrow
不
dlrow olleh
任何想法,使這一計劃?
關於使用StringBuffer而不使用String.split的反向字。
例如 反向
世界,你好
輸出必須java:使用StringBuffer而不使用String.split的反向字
olleh dlrow
不
dlrow olleh
任何想法,使這一計劃?
導入庫並使用此函數。
import org.apache.commons.lang.StringUtils;
String reverseWords(String string) {
return StringUtils.reverseDelimited(StringUtils.reverse(string), ' ');
}
這聽起來像一個家庭作業問題,所以不是給你實際的代碼,我會告訴你我在使用僞代碼的想法。
假設:你必須使用一個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;
注:這只是衆多方法來解決你的問題之一。
這裏是進行一種方法:
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 '
你已經做了什麼?請張貼一些代碼... – Crazenezz 2012-04-18 09:01:39
看起來像作業,聞起來像作業... – mcfinnigan 2012-04-18 09:02:55
我的代碼只能打印「dlrow olleh」... – heyman 2012-04-18 09:05:56