Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有多个单词的Java ask字符串输入_Java - Fatal编程技术网

具有多个单词的Java ask字符串输入

具有多个单词的Java ask字符串输入,java,Java,您好,我在使用Java询问直接全名时遇到问题 System.out.println("DOCTOR"); System.out.println("Enter ID Number:"); idnumber = scan.next(); System.out.println("Enter Name"); name = scan.next(); System.out.println("Enter Field of Specialization:"); field = scan.next(); Sys

您好,我在使用Java询问直接全名时遇到问题

System.out.println("DOCTOR");
System.out.println("Enter ID Number:");
idnumber = scan.next();
System.out.println("Enter Name");
name = scan.next();
System.out.println("Enter Field of Specialization:");
field = scan.next();

System.out.println("ID               " + idnumber);
System.out.println("Name             " + name);
System.out.println("Specializtion    " + field );
当我在下面输入此信息时:

ID=100 Name=Brandon Sullano

它给了我这个结果

ID               100    
Name             Brandon    
Specializtion    Sullano
我希望名称是动态的,这样我甚至可以输入两个单词如何操作?
提前感谢。

使用:

name = scan.nextLine();
此外,如果ID号是整数,请使用
nextInt()
(确保还将
idnumber
声明为
int
,而不是
字符串

固定代码:

System.out.println("DOCTOR");
System.out.println("Enter ID Number:");
idnumber = scan.nextInt();
scan.nextLine();

System.out.println("Enter Name");
name = scan.nextLine();
System.out.println("Enter Field of Specialization:");
field = scan.nextLine();

System.out.println("ID               " + idnumber);
System.out.println("Name             " + name);
System.out.println("Specializtion    " + field );
仅使用
next()
将获取空格前的所有输入
nextLine()
将在按下return之前接受所有输入

有关
扫描仪的详细信息

Pro提示:在大多数情况下,您将使用
scan.nextLine()
而不是
scan.next()
,因此您可能希望养成使用它的习惯。

尝试以下代码:

import java.util.Scanner;

public class DoctorDoctor {

    public static void main (String [] args) {

        int idnumber;
        String name, field;

        Scanner sc = new Scanner(System.in);

        System.out.println("DOCTOR");

        /** Assuming ID number is an integer value */
        System.out.print("Enter ID Number: ");
        idnumber = sc.nextInt();
        sc.nextLine(); // This is important, for clearing the new line character

        System.out.print("Enter Name: ");
        name = sc.nextLine();

        System.out.print("Enter Field of Specialization: ");
        field = sc.nextLine();

        System.out.println();
        System.out.printf("%-15s: %d%n", "ID Number", idnumber);
        System.out.printf("%-15s: %s%n", "Name", name);
        System.out.printf("%-15s: %s%n", "Specialization", field);

        sc.close();
    }
}
输入/输出示例:

DOCTOR
Enter ID Number: 100
Enter Name: Brandon
Enter Field of Specialization: Heart Surgeon

ID Number      : 100
Name           : Brandon
Specialization : Heart Surgeon

既然您说
scan.nextLine()
“不工作”,我建议使用
BufferedReader

BufferedReader br=new BufferedReader(new InputStreamReader(System.in);
//in your code:
int idnumber = Integer.parseInt(br.readLine());
String name = br.readLine();
String field = br.readLine(); 

您必须导入
java.io.BufferedReader
java.io.InputStreamReader

您看过扫描仪方法的文档了吗?我搜索了代码,但找不到将在该文档上查找尝试oracles文档。喜欢或神谕网站。或者,使用谷歌,但你知道怎么做吗?我看到了而不是扫描。下一步将使用scan.nextLine()但不起作用解释“不起作用”,我们对这个短语有点敏感。当我运行系统时,它不起作用。它会跳转询问我的姓名并跳过Id号。在我这方面效果很好。它会直接询问姓名并跳过Idnumber@UnknownOctopus专业提示:
idnumber=scan.nextInt()
之后需要进行
扫描.nextLine()
。否则,
name=scan.nextLine()
将使用新行字符,导致程序跳转到“输入..字段”@Watermel0n Edited。谢谢