2015-06-25 46 views
0

你好我工作的分配和我遇到我希望一點點方向問題......想要創建一個縮寫了用戶輸入的

的目的是讓用戶輸入的短語,從該短語中創建一個縮寫詞。任何超過三個單詞都將被忽略。

我遇到了首字母縮寫部分的問題,我能夠得到第一個字符,並想通過用戶輸入循環並在空格後抓住字符,但這不起作用。我得到的全部是第一個字符,這很明顯,因爲我先抓住了它,但我無法弄清楚如何「保存」另外兩個字符。任何幫助是極大的讚賞。

*********更新************************ 所以感謝下面的答案,我已經取得了進展使用StringBuilder。但是,現在如果我輸入「你的三個詞」,輸出是:YYYYYYYYYYWYYYY 這是進展,但我不明白爲什麼它重複這麼多次第一個字符? 我也編輯了代碼。 *********更新*****************************

public class ThreeLetterAcronym { 

public static void main(String[] args) { 
    String threeWords; 
    StringBuilder acronym = new StringBuilder(); 

    Scanner scan = new Scanner(System.in); 

    System.out.println("Enter your three words: "); 
    threeWords = scan.nextLine(); 

    for(int count = 0; count < threeWords.length(); count++) { 

     acronym.append(threeWords.charAt(0)); 

      if(threeWords.charAt(count) == ' ') { 
       ++count; 
       acronym.append(threeWords.charAt(count)); 

      } 

    } 
    System.out.println("The acronym of the three words you entered is: " + acronym); 

} 
} 

回答

0

你可以' t保存其他字符,因爲char應該只存儲一個字符。 你可以在你的循環在這種情況下使用StringBuilder

StringBuilder acronym = new StringBuilder(); 

然後只需用

 String[] threeWordsArray = threeWords.split(" "); 

     for(String word : threeWordsArray) { 
      acronym.append(word.substring(0, 1)); 
     } 

**更新

+0

好吧,我會試試看。我剛剛讀了一本類似使用子字符串的書,是不是使用stringBuilder或使用StringBuilder最合適的東西?那麼對於StringBuffer呢,我對這一切都很陌生,並且只是對這兩者進行了解。 – NoobCoderChick

+0

我嘗試了你所說的,並沒有像預期的那樣工作。我得到了第一個字符重複12次的輸出。所以我輸入「你的三個詞」和輸出是「YYYYYYYYYYYY」 – NoobCoderChick

+0

我上面更新如果​​你可以看看我會很感激。 – NoobCoderChick

0

您保存當前索引中的字符在space替換:

char space = threeWords.charAt(count); 

然後你比較的值與整數值3

if(space < 3) 

這將幾乎肯定不會爲真。你正在詢問一個字符的數字值。假設它是一封信,它至少爲65。我懷疑你的意圖是在變量space中存儲不同的東西。

+0

哦,是的,你是對的,我試圖讓空間等於三個詞用戶輸入的空間,並停在3個空格處。就我所遇到的問題而言,這並不重要,它捕捉的不僅僅是輸入字符串中的第一個字符,我相當肯定我可以想出如何讓它在三個字後停止。我至少在想,哈哈。 – NoobCoderChick

相關問題