2016-09-20 54 views
-2

我目前正在嘗試創建一個程序,它接受任何字符串輸入並按空格拆分以創建首字母縮略詞。目前該程序只打印出第一個字輸入的第一個字母。我相信問題出在我的循環上。有人可以照顧一下嗎?使用Java創建Acroynm

import java.util.Scanner; 
import java.io.*; 
import java.util.*; 

public class WordSplitter { 

    public static void main(String[] args) { 
     String phraseToChange; 
     Scanner input = new Scanner(System.in); 
     System.out.println("This program builds acronyms"); 
     System.out.println("Enter a phrase:"); 
     phraseToChange = input.next(); 
     String[] phraseChanger = phraseToChange.split(" "); 
     for (int i = 0; i <= phraseChanger.length; i++) { 
      String s = phraseChanger[i]; 
      System.out.println(s.charAt(0)); 

     } 
    } 

} 
+0

而你的問題是......? – Li357

+0

我的for循環有問題嗎?我查了一下語法,我認爲這是正確的解決方案,但是如果我輸入「Hello World」,它只會打印出H –

+0

@KevinMaldjian - 你需要在你的**註釋**中加入詳細信息, *實際問題**作爲**編輯**或更好,但是當您將問題寫入開頭時。我建議你閱讀[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask),以期在未來有更好的接待。 –

回答

2

你從來沒有真正使用每個單詞的第一個字母來建立首字母縮寫詞。試試這個代碼:

String [] phraseChanger = phraseToChange.split(" "); 
StringBuilder sb = new StringBuilder(); 
for (int i=0; i < phraseChanger.length ; i++) { 
    sb.append(phraseChanger[i].charAt(0)); 
} 

System.out.println(sb.toString()); 
+0

嗯,這個解決方案仍然給我相同的結果,我也發現我<= phraseChanger.length應該是我

+0

@KevinMaldjian我只是測試了這個代碼在IntelliJ上,它運行良好。你必須在你的設置上做錯了什麼。 –

0

而不是這個短語ToChange = input.next();你必須把phraseToChange = input.nextLine();它會工作