java从键盘读取多项内容_在Java中,我们可以通过几种方式从键盘读取数据?

java.io包提供了各种类来读取来自各种源和目标的写入数据。

您可以使用各种类(例如Scanner,BufferedReader,InputStreamReader,Console等)从用户(键盘)读取数据。

使用Scanner 类

从Java 1.5开始引入Scanner类。此类接受File,InputStream,Path和String对象,使用正则表达式逐个令牌读取所有原始数据类型和String(从给定的源)令牌。默认情况下,空格被视为定界符(将数据分成令牌)。

要从键盘读取数据,您需要使用标准输入作为源(System.in)。对于每个数据类型的nextXXX()被设置,即,nextInt(),nextShort(),nextFloat(),nextLong(),nextBigDecimal(),nextBigInteger(),nextLong(),nextShort(),nextDouble(),nextByte(),nextFloat(),next()。

示例

以下Java程序使用Scanner类从用户读取数据。import java.util.Scanner;

class Student{

String name;

int age;

float percent;

boolean isLocal;

char grade;

Student(String name, int age, float percent, boolean isLocal, char grade){

this.name = name;

this.age = age;

this.percent = percent;

this.isLocal = isLocal;

this.grade = grade;

}

public void displayDetails(){

System.out.println("Details..............");

System.out.println("Name: "+this.name);

System.out.println("Age: "+this.age);

System.out.println("Percent: "+this.percent);

if(this.isLocal) {

System.out.println("Nationality: Indian");

}else {

System.out.println("Nationality: Foreigner");

}

System.out.println("Grade: "+this.grade);

}

}

public class ReadData {

public static void main(String args[]) {

Scanner sc =new Scanner(System.in);

System.out.println("Enter your name: ");

String name = sc.next();

System.out.println("Enter your age: ");

int age = sc.nextInt();

System.out.println("Enter your percent: ");

float percent = sc.nextFloat();

System.out.println("Are you local (enter true or false): ");

boolean isLocal = sc.nextBoolean();

System.out.println("Enter your grade(enter A, or, B or, C or, D): ");

char grade = sc.next().toCharArray()[0];

Student std = new Student(name, age, percent, isLocal, grade);

std.displayDetails();

}

}

输出结果Enter your name:

Krishna

Enter your age:

25

Enter your percent:

86

Are you local (enter true or false):

true

Enter your grade(enter A, or, B or, C or, D):

A

Details..............

Name: Krishna

Age: 25

Percent: 86.0

Nationality: Indian

Grade: A

使用BufferedReader

Java的BufferedReader类用于从指定的源读取字符流(字符输入流)。此类的构造函数接受InputStream对象作为参数,您可以传递InputStreamReader。

示例

以下Java程序使用BufferedReader类从用户读取数据。import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

class Student{

String name;

int age;

float percent;

boolean isLocal;

char grade;

Student(String name, int age, float percent, boolean isLocal, char grade){

this.name = name;

this.age = age;

this.percent = percent;

this.isLocal = isLocal;

this.grade = grade;

}

public void displayDetails(){

System.out.println("Details..............");

System.out.println("Name: "+this.name);

System.out.println("Age: "+this.age);

System.out.println("Percent: "+this.percent);

if(this.isLocal) {

System.out.println("Nationality: Indian");

}else {

System.out.println("Nationality: Foreigner");

}

System.out.println("Grade: "+this.grade);

}

}

public class ReadData {

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

BufferedReader reader =new BufferedReader(new InputStreamReader(System.in));

System.out.println("Enter your name: ");

String name = reader.readLine();

System.out.println("Enter your age: ");

int age = Integer.parseInt(reader.readLine());

System.out.println("Enter your percent: ");

float percent = Float.parseFloat(reader.readLine());

System.out.println("Are you local (enter true or false): ");

boolean isLocal = Boolean.parseBoolean(reader.readLine());

System.out.println("Enter your grade(enter A, or, B or, C or, D): ");

char grade = (char) reader.read();

Student std = new Student(name, age, percent, isLocal, grade);

std.displayDetails();

}

}

输出结果Enter your name:

Krishna

Enter your age:

25

Enter your percent:

86

Are you local (enter true or false):

true

Enter your grade(enter A, or, B or, C or, D):

A

Details..............

Name: Krishna

Age: 25

Percent: 86.0

Nationality: Indian

Grade: A

使用Console 类

此类用于从控制台(键盘/屏幕)设备写入/读取数据。它提供了readLine()方法,该方法从键盘读取一行。您可以使用console()方法获取Console类的对象。

注意-如果您尝试在非交互式环境(例如IDE)中执行此程序,则该程序将无法正常工作。

示例

以下Java程序使用Console类从用户读取数据。import java.io.BufferedReader;

import java.io.Console;

import java.io.IOException;

import java.io.InputStreamReader;

class Student{

String name;

int age;

float percent;

boolean isLocal;

char grade;

Student(String name, int age, float percent, boolean isLocal, char grade){

this.name = name;

this.age = age;

this.percent = percent;

this.isLocal = isLocal;

this.grade = grade;

}

public void displayDetails(){

System.out.println("Details..............");

System.out.println("Name: "+this.name);

System.out.println("Age: "+this.age);

System.out.println("Percent: "+this.percent);

if(this.isLocal) {

System.out.println("Nationality: Indian");

}else {

System.out.println("Nationality: Foreigner");

}

System.out.println("Grade: "+this.grade);

}

}

public class ReadData {

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

Console console = System.console();

if (console == null) {

System.out.println("Console is not supported");

System.exit(1);

}

System.out.println("Enter your name: ");

String name = console.readLine();

System.out.println("Enter your age: ");

int age = Integer.parseInt(console.readLine());

System.out.println("Enter your percent: ");

float percent = Float.parseFloat(console.readLine());

System.out.println("Are you local (enter true or false): ");

boolean isLocal = Boolean.parseBoolean(console.readLine());

System.out.println("Enter your grade(enter A, or, B or, C or, D): ");

char grade = console.readLine().toCharArray()[0];

Student std = new Student(name, age, percent, isLocal, grade);

std.displayDetails();

}

}

输出结果Enter your name:

Krishna

Enter your age:

26

Enter your percent:

86

Are you local (enter true or false):

true

Enter your grade(enter A, or, B or, C or, D):

A

Details..............

Name: Krishna

Age: 26

Percent: 86.0

Nationality: Indian

Grade: A

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值