Java 尝试使用用户输入创建首字母缩写词

Java 尝试使用用户输入创建首字母缩写词,java,for-loop,character,Java,For Loop,Character,您好,我正在做一项作业,我遇到了一些问题,我希望有一个小方向 其目的是让用户输入一个短语,并用该短语创建首字母缩略词。任何超过三个单词的内容都将被忽略 我在首字母缩略词部分遇到了问题,我能够得到第一个字符,并且我认为我会循环用户输入并在空格后抓取字符,但这不起作用。我得到的只是第一个字符,这是显而易见的,因为我抓住了第一个字符,但我不知道如何“保存”其他两个字符。非常感谢您的帮助 *********更新************************ 因此,感谢下面的答案,我在使用StringB

您好,我正在做一项作业,我遇到了一些问题,我希望有一个小方向

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

我在首字母缩略词部分遇到了问题,我能够得到第一个字符,并且我认为我会循环用户输入并在空格后抓取字符,但这不起作用。我得到的只是第一个字符,这是显而易见的,因为我抓住了第一个字符,但我不知道如何“保存”其他两个字符。非常感谢您的帮助

*********更新************************ 因此,感谢下面的答案,我在使用StringBuilder方面取得了进展。但是,现在如果我输入“你的三个词”,输出是:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 这是一个进步,但我不明白为什么它会重复第一个字符这么多次?? 我也编辑了代码。 *********更新*****************************

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

}
}
公共类三字母缩略词{
公共静态void main(字符串[]args){
串三个字;
StringBuilder缩写=新StringBuilder();
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入您的三个单词:”);
threeWords=scan.nextLine();
for(int count=0;count
无法保存其他字符,因为char应该只存储一个字符。 在这种情况下,可以使用StringBuilder

  StringBuilder acronym = new StringBuilder();
然后在循环中,简单地用

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

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

**已更新

将字符存储在
空间中的当前索引中

char space = threeWords.charAt(count);
然后比较
空格
的值与整数值
3

if(space < 3)
if(空格<3)

这几乎肯定永远不会是真的。您要求的是字符的数值。假设它是一个字母,那么它至少是
65
。我怀疑您的意图是在变量
空间中存储不同的内容

哦,是的,您是对的,我试图在三个字的用户输入中使空间等于一个空间,并在3个空间处停止。就我所遇到的问题而言,这甚至都不重要,捕获的不仅仅是输入字符串中的第一个字符,我很确定我可以找出如何在三个单词后停止…我想至少是这样。好吧,酷,我会尝试一下。我刚刚在一本书中读到了类似的使用子字符串的内容,这是一种可以代替stringBuilder使用的东西,还是stringBuilder是最适合使用的东西?至于StringBuffer呢,我对这一切都很陌生,只是了解了这两个方面。我试过了你说的,但它并没有按预期工作。我得到的第一个字符的输出重复了12次。因此,我输入“Your Three Words”,输出为“yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy,您可以检查StringBuffer和StringBuilder之间的差异。非常感谢您!如果你不介意的话,我有一个简短的问题要问你。创建阵列是唯一有效的方法吗?是否有其他方法可以获取一个字符串变量中不同单词的第一个字符?