2013-10-14 39 views
-3

我的項目有用戶輸入三個單詞,全部在一行中(大於兩個字符),例如:一個兩個三,將每個單詞一些字母切分(具體見下文) ,最後將修改後的單詞合併爲一個大單詞。識別字符串中的單個詞JAVA

我把它全寫在僞代碼中,但我遇到了一個問題,如何使用子串方法來確定何時一個單詞結束,並且下一個單詞開始。我想我可以做的是以某種方式識別詞語之間的空白,並將其作爲突破點。是否有某種我可以使用的陳述?像「if(nextchar ='')開始存儲在下一個變量?並在一個while循環適合所有?

如果我已經做了太混亂,這是我的教授給我的任務,請不要只要給我答案,我寧願在正確的方向指出,並弄明白。

  1. 提示用戶輸入三個詞,用空格隔開。輸入的單詞作爲字符串。
  2. 串連在一起除第一個字外,第一個字中的所有字符與第二個 字中的所有字符,除了第一個字和第三個字中包含所有字符的第一個字符和最後一個字符除外最後一個。打印這個字符串,並且只有這個字符串輸出。爲了簡單起見,您可以假定用戶輸入的每個單詞至少有兩個字符(您不必檢查此內容)。例如,如果輸入的三個單詞是「fun」,「With」, 「Strings」,則此步驟的輸出應該是「unitString」。提示:對這一步使用substring()方法。另一個 提示:將子字符串存儲在三個新的字符串變量中,所以最終不會更改三個原始字詞。

謝謝!

+1

文字的聖牆回來了。 –

+0

嘗試你認爲將使用子串方法,然後發佈任何問題/錯誤。如果您在發佈求助信息之前嘗試了您認爲可能會發揮作用的內容,那麼您會幫助自己。 – scrappedcola

+0

這個問題本來可以說得更好,但我並不認爲有必要在初學者(他可能對社區不熟悉)上加入,並最終阻止他/她成爲其中的一員。對社區規範和他/她的問題的溫和指導是可取的。 – Vidya

回答

0

首先創建一個Scanner讀取輸入:

Scanner s = new Scanner(System.in); 

然後將這些以從用戶讀取的三個輸入端(輸入陸續一行):

first = s.nextLine(); 
second = s.nextLine(); 
third = s.nextLine(); 

最後,使用substring正如你的教授所述:

firstProcessed = first.substring(1, first.length - 1); 

這個得到第一個輸入單詞並將它從第二個字符切換到倒數第二個字符。

希望你可以把它放在其餘的路上。

+0

感謝您的回覆。我應該在一行中輸入,而不是三個。這就是我的問題來自何處。 – coinbird

+0

然後讀取一行,並調用line.split(「」)。這將產生一個三元素數組。然後您按上面所述處理這些字符串。或者@Vae建議,您也可以使用StringTokenizer http://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html – Vidya

3

使用myString.Split(" ");

到文本比的代碼是awefully低。請修改rules以備將來參考。

更重要的point

問題要求代碼必須表現出對問題的理解最小正在解決。包括嘗試解決方案,爲什麼他們沒有工作,以及預期的結果。

最後,按照這個checklist爲您的下一個問題。否則,如果人們注意到這是反覆發生的行爲,你會有更糟糕的接待。

+0

我明白這個問題。我甚至用我自己的話來解釋,除了張貼我的導師解釋。 我在網站周圍搜索,但有關鍵字的問題。我不斷回到所謂的「分裂」,但我們還沒有知道,所以我不想惹它。 我包含了一些我認爲是相關的代碼片段,但在實踐中遇到了麻煩。 – coinbird

+0

作爲一名程序員,你的整個職業生涯都將由'搞砸'組成。看看它在官方文檔中的作用並開始嘗試,沒有更好的學習方式。不要讓球場的速度壓制你,也沒有什麼不好的。 –

0

我會看看以下內容:String.substring()命令或StringTokenizer類。

String.subString()將允許您基於indeces打破您的輸入。您可以搜索空格的空白並從它們之間返回子字符串。

StringTokenizer將允許您通過分隔符將字符串分解爲令牌,即您可以使用「」作爲分隔符,並且標記器將字符串分隔成爲空格之間的標記。