尝试使用用户输入创建缩略词

时间:2015-06-25 23:14:17

标签: java for-loop character

您好我正在完成一项任务,而且我遇到了一些我希望有一点方向的问题...

目的是让用户输入一个短语并从该短语中创建一个首字母缩略词。超过三个单词的任何内容都将被忽略。

我遇到了首字母缩略词部分的问题,我能够获得第一个字符,并认为我会循环访问用户输入并在空格后抓取字符,但这不起作用。我得到的只是第一个角色,这是显而易见的,因为我首先抓住了这个角色,但我无法弄清楚如何保存"另外两个角色。非常感谢任何帮助。

********* UPDATE ************************ 所以,由于下面的答案,我在使用StringBuilder方面取得了进展。但是,现在如果我输入你的三个字"输出为:YYYYYYYYYYYYYYY 这是进步,但我无法理解为什么它会重复这些第一个字符这么多次? 我也编辑了代码。 ********* ******** UPDATE

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);

}
}

2 个答案:

答案 0 :(得分:0)

您无法保存其他字符,因为char应该只存储一个字符。 在这种情况下,您可以使用StringBuilder

  StringBuilder acronym = new StringBuilder();

然后在你的循环中简单地用

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

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

**已更新

答案 1 :(得分:0)

您将字符存储在space

中的当前索引处
char space = threeWords.charAt(count);

然后将space的值与整数值3进行比较:

if(space < 3)

这几乎肯定不会是真的。您要求的是字符的数值。假设它是一封信,它将至少为65。我怀疑你的意图是在变量space中存储不同的东西。