使用扫描仪类输入

时间:2016-05-24 03:17:50

标签: java

我是一名新的java程序员,在我的下面代码中,当我试图输入像john smith这样的员工名字时,只有john在输出中打印。 如果我把

System.out.print("Enter Employee Name: ");   
String employeeName = s.next(); 

上方

System.out.print("Enter SEX: ");       
char SEX = s.next().charAt(0);

输出中的这段代码并不是要求我的employeeename值。并直接打印剩余的值。

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
**package cs480;
import java.util.Scanner;
public class CS480D1_Richa_2_Week2 {
    public static void main(String [] args){
     Scanner s=new Scanner(System.in);  
     System.out.print("Ente Employee ID: ");
     int employeeId = s.nextInt();
     System.out.print("Ente SEX: ");       
     char SEX = s.next().charAt(0);
     System.out.print("Ente Employee Name: ");
     String employeeName = s.next();
     System.out.println("Employee ID is " +employeeId);
     System.out.println("Employee Name is " +employeeName);
     System.out.println("Employee gender is " +SEX);
    }        

}**

4 个答案:

答案 0 :(得分:0)

尝试替换您的代码

字符串employeeName = scanner.nextLine();

代替

字符串employeeName = scanner.next();

next()只能读取输入直到空格。它无法读取由空格分隔的两个单词。此外,next()在读取输入后将光标放在同一行。

nextLine()读取包含单词之间空格的输入(即,读取直到行尾\ n)。读取输入后,nextLine()将光标定位在下一行。

答案 1 :(得分:0)

你可以使用

scanner.nextLine()

或覆盖分隔符以使用next()

scanner.useDelimiter("\n");
scanner.next();

答案 2 :(得分:0)

请试试这个:

var myArray = [
  Object { key="11", value="1100", $$hashKey="00X"},
  Object { key="22", value="2200", $$hashKey="018"}
];
var myObj = _.object(_.pluck(myArray, 'key'), _.pluck(myArray, 'value'));

答案 3 :(得分:0)

Scanner.next()使用空白分隔符(在空白之前获取元素)。

所以要么使用

Scanner.nextLine() 

或使用

重置分隔符
Scanner s = new Scanner(input).useDelimiter("\\s*"your delimiter"\\s*");