Java:如何为用户输入的单词创建变量

Java:如何为用户输入的单词创建变量,java,Java,我正在尝试创建一个程序,询问用户的姓名、年龄和他们最喜欢的食物类型。然后,程序将重复他们估算的内容。请注意,程序尚未完成。一旦我写了这段特殊的代码,我就会得到一个错误。请原谅我在编程方面缺乏智慧。我是一个非常新的学习者 下面是代码:name=Test.nextDouble() 为了帮助您更好地理解该计划,以下是我的工作区: import java.util.Scanner; class HelloProgram { public static void main(String

我正在尝试创建一个程序,询问用户的姓名、年龄和他们最喜欢的食物类型。然后,程序将重复他们估算的内容。请注意,程序尚未完成。一旦我写了这段特殊的代码,我就会得到一个错误。请原谅我在编程方面缺乏智慧。我是一个非常新的学习者

下面是代码:
name=Test.nextDouble()

为了帮助您更好地理解该计划,以下是我的工作区:

import java.util.Scanner;

    class HelloProgram {
    public static void main(String args[]) {
        Scanner Test = new Scanner(System.in);
        double name, age, favfood;
        System.out.println("Hello there! Before we start, I would like to ask you a few questions!");
        System.out.println("Let us start with your name. What is it?");
        name = Test.nextDouble();
        System.out.println(name);

    }
}
一旦我尝试运行该程序,然后键入我的名字,我就会出现以下错误:

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextDouble(Unknown Source)
    at HelloProgram.main(HelloProgram.java:9)
正如我之前所说的,我相信这是由使用“newDouble()”部分引起的。这是因为“Double”不支持单词吗

如果有人能向我解释为什么这不起作用,并帮助我修复它,我将不胜感激。谢谢。

是,“Double”不支持单词。Double或Double是浮点数字类型,仅接受数字。如果要接受文本,请使用Scanner的其他方法,如
next()
nextLine()
,它们都接受字符串,并使name和favfood变量成为字符串:

public static void main (String args[]){
    Scanner test = new Scanner (System.in);
    String name, favfood;
    double age;
    System.out.println("Hello there! Before we start, I would like to ask you a few questions!");
    System.out.print("Let us start with your name. What is it? ");
    name = test.nextLine();
    System.out.println(name);
}
让您和其他人(我们!)更容易理解您的代码的其他建议:

  • 学习并遵循Java命名约定,包括提供变量,如以小写字母开头的“测试”名称和以大写字母开头的类名称
  • 代码缩进对于跟踪哪个代码属于哪个块非常重要。例如,所有嵌套块都应该缩进4个空格——您的主方法应该缩进,但它不是
是“双精度”不支持单词。Double或Double是浮点数字类型,仅接受数字。如果要接受文本,请使用Scanner的其他方法,如
next()
nextLine()
,它们都接受字符串,并使name和favfood变量成为字符串:

public static void main (String args[]){
    Scanner test = new Scanner (System.in);
    String name, favfood;
    double age;
    System.out.println("Hello there! Before we start, I would like to ask you a few questions!");
    System.out.print("Let us start with your name. What is it? ");
    name = test.nextLine();
    System.out.println(name);
}
让您和其他人(我们!)更容易理解您的代码的其他建议:

  • 学习并遵循Java命名约定,包括提供变量,如以小写字母开头的“测试”名称和以大写字母开头的类名称
  • 代码缩进对于跟踪哪个代码属于哪个块非常重要。例如,所有嵌套块都应该缩进4个空格——您的主方法应该缩进,但它不是

  • A
    double
    用于浮点值。我不擅长解释,但您需要使用
    字符串
    表示文本值,使用
    int
    表示整数

    A
    double
    用于浮点值。我不擅长解释,但您需要使用
    字符串
    表示文本值,使用
    int
    表示整数

    我认为您应该学习Java基础知识。阅读一些初学者教程。您可能应该在这里使用
    字符串而不是双精度字符串。我认为您应该学习Java基础知识。阅读一些初学者教程。您可能应该在这里使用
    字符串而不是double。double始终是一个整数,就像值No一样,它不是<代码>双精度
    !=
    int
    。我正确地查找了它,double用于精确值。我想说的是不同的,因为double类似于浮点数,它们包含浮点数(非整数)的值,double比float更精确,但仍然不是“精确值”。为了获得高精度,您可以使用BigDecimal,但您还必须支付这种类型的成本——更大的内存占用和更低的计算速度。double始终是一个类似于值的整数不,它不是<代码>双精度
    !=
    int
    。我正确地查找了它,double用于精确值。我想说的是不同的,因为double类似于浮点数,它们包含浮点数(非整数)的值,double比float更精确,但仍然不是“精确值”。为了获得高精度,您可以使用BigDecimal,但是您还必须支付这种类型的成本——更大的内存占用和更低的计算速度。感谢您的快速响应。我从未想过添加两种不同的变量类型;)谢谢你的迅速回复。我从未想过添加两种不同的变量类型;)