java - 将用户输入的单词组合成句子

标签 java

我正在尝试编写一个程序,该程序接受用户输入的单词并使用这些单词构建一个句子。因此,如果您输入“Hello”和“World”,它将返回“Hello World”。但是,如果我输入“我”、“爱”和“狗”,它将返回“love dogs did”。 (完成是我让用户退出的哨兵。我不知道该怎么做。

import java.util.Scanner;

public class SentenceBuilder {


public static void main(String[] args) {

    Scanner scnr = new Scanner(System.in);

    String word = " ";
    String sentence = " ";
    final String SENTINEL = "done";
    double count = 0;

    System.out.println("Enter multiple words: ");
    System.out.println("Enter done to finish: ");
        word = scnr.nextLine();


    do {
        word = scnr.nextLine();
        count++;
        sentence += word + " ";
    } while (!(word.equalsIgnoreCase(SENTINEL)));



    System.out.println(sentence);
}

}

最佳答案

将您的代码更改为以下内容:

public static void main(String[] args)
{ 
    Scanner scnr = new Scanner(System.in);

    String word = "";
    String sentence = "";
    final String SENTINEL = "done";
    double count = 0;

    System.out.println("Enter multiple words: ");
    System.out.println("Enter done to finish: ");
    //remove the first prompt here..
    do {
        word = scnr.next();
        if(word.equalsIgnoreCase(SENTINEL))  //exit loop if "done" was input
            break;          
        count++;
        sentence += word + " ";
    } while (!(word.equalsIgnoreCase(SENTINEL)));

    System.out.println(sentence);           
}

您需要删除循环外的第一个提示,否则它不会将第一个输入添加到字符串中。我添加了一个检查,以便在收到“完成”后立即进行检查。

这可能是学校的问题,因此您使用sentence += word。但是,为了累积添加到字符串,最好使用 StringBuilder

关于java - 将用户输入的单词组合成句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35707383/

相关文章:

java - JSP:即使我无法显示错误页面,我如何才能让代码继续运行?

java - Spring Cache - @CachePut 和 @CacheEvict 之间的真正区别

java - 无法用spring boot+JWT+MySQL实现RBAC

java - 如何获取其他应用程序的图标(Android)

java - 仅替换 Android MarshMallow 上的 framework.jar 及其相关库

java - 哪个监听器可以知道 JTextPane 值已更改?

java - 在 Swing 中使用哪个面板

java - :select struts2 tag issue

java - 如何在 JXTreeTable 上显示字符串

java - 绘制等距墙