如何使用charAt()和br.skip()克服\ n(Enter)?

时间:2016-02-15 18:45:47

标签: java string bufferedreader

在这个给定的程序中,输出显示为name的空白。原因是我们使用了read()readLine()方法。

//Employee details

import java.io.*;

public class Empdata {
    public static void main(String[] args) throws IOException {

        // create BufferedReader object to accept data from keyboard
        BufferedReader br = new BufferedReader(
                new InputStreamReader(System.in));

        // accept employee details
        System.out.print("Enter id:");
        int id = Integer.parseInt(br.readLine());

        System.out.print("Enter sex(M/F):");
        char sex = (char) br.read();

        System.out.print("Enter name:");
        String name = br.readLine();

        // display the employee details
        System.out.println("Id:" + id);
        System.out.println("Sex:" + sex);
        System.out.println("Name:" + name);
    }
}

输出

输入id:10
输入性别(男/女):M
输入姓名:id:10
性别:M
姓名:

1 个答案:

答案 0 :(得分:0)

有两种方法可以解决这个问题 1.使用 charAt(0)
2.使用 br.skip(2)

enter code here

//员工详细信息

import java.io. *;
公共课Empdata1 {
public static void main(String [] args)抛出IOException {

//创建BufferedReader对象以接受来自键盘的数据
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

//接受员工详细信息
System.out.print(“输入id:”);
int id = Integer.parseInt(br.readLine());

System.out.print(“输入性别(男/女):”​​);
char sex =(char)br.read();
// char sex = br.readLine()。charAt(0);

//解决方案2:跳过2个字符
br.skip(2);

System.out.print(“输入名称:”);
String name = br.readLine();

//显示员工详细信息
的System.out.println( “ID:” + ID);
的System.out.println( “性别:” +性别);
的System.out.println( “名称:” +姓名);
}
}

<强>输出:
输入id:10
 输入性别(男/女):M
 输入姓名:Vinay
 ID:10
 性别:M
 名称:维奈