【问题标题】:String input with Scanner使用 Scanner 输入字符串
【发布时间】:2017-07-16 19:37:01
【问题描述】:

我正在尝试构建一个简单的 5 个单词的句子,其中每个单词都有标签和显示。 IE。主谓等。然后在最后它会做一个完整的连贯句子。然而,当我运行代码时,我得到一个错误,我不知道为什么。

public class Sentence {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
       // TODO code application logic here
       Scanner input = new Scanner(System.in);

       System.out.println("Enter Subject:");
       int Subject = input.nextInt();

       System.out.println("Enter Verb:");
       int Verb = input.nextInt();

       System.out.println("Enter Adjective:");
       String Adjective;
       Adjective = input.next();

       System.out.println("Enter Object:");
       String Object;
       Object = input.next();

       System.out.println("Enter Adverb:");
       String Adverb;
       Adverb = input.next();

       System.out.println("Subject  + Verb + Adjective + Object + Adverb");

    }
}

【问题讨论】:

  • 欢迎来到 Stack Overflow!寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误重现它所需的最短代码在问题本身。没有明确问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example
  • 请编辑您的问题并添加有关该错误的详细信息。我们在这里不是向导 - 我们不知道您使用了什么输入 - 以防我们谈论运行时问题。
  • 请发布您遇到的错误,它将帮助我们快速解决您的问题。
  • 这可能是运行时问题。我认为问题在于您的代码要求主语和动词使用整数。您可能希望那些接受字符串。

标签: java string input output


【解决方案1】:

我认为所有人都必须读取字符串内容(这两个首先等待一个 int)所以也许你想要一些这样的

  public static void main(String[] args) {
        // TODO code application logic here
        Scanner input = new Scanner(System.in);

        System.out.println("Enter Subject:");
        String subject = input.next();

        System.out.println("Enter Verb:");
        String verb = input.next();

        System.out.println("Enter Adjective:");
        String adjective;
        adjective = input.next();

        System.out.println("Enter Object:");
        String object;
        object = input.next();

        System.out.println("Enter Adverb:");
        String adverb;
        adverb = input.next();

        System.out.println(subject + " " + verb + " " + adjective + " " + object + " " + adverb);
    }

【讨论】:

  • 非常感谢!
【解决方案2】:

你说你想要一个连贯的句子。现在,看看你的代码。你会发现你使用了没有意义的整数。

1) 你使用了 Scanner 但你没有导入 Scanner 类。这是你的第一个问题。如果您想使用 Scanner,则应始终在代码开头导入“Scanner 类”。

2) 你想写一个连贯的句子,所以它应该有单词。但是你使用了整数。你应该使用 String 和 NextLine();为它。

3)在你的代码末尾,System.out.println("Subject + Verb + Adjective + Object + Adverb"); 删除所有的引号,你的代码应该可以正常工作了。

所以你的代码应该是这样的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多