Java 中的 Scanner 类是什么?它在哪一年引入的?
在 Java 1.5 之前,为了从用户处读取数据,程序员依赖于字符流类和字节流类。
从 Java 1.5 开始引入了 Scanner 类。此类接受 File、InputStream、Path 和 String 对象,使用正则表达式以 token 为单位读取所有原始数据类型和字符串(从给定的源)。
默认情况下,空格被视为分隔符(将数据分解成 token)。
要从源读取各种数据类型,可以使用此类提供的 nextXXX() 方法,即:nextInt()、nextShort()、nextFloat()、nextLong()、nextBigDecimal()、nextBigInteger()、nextLong()、nextShort()、nextDouble()、nextByte()、nextFloat()、next()。
示例 − 从键盘读取数据
以下 Java 程序从用户处读取姓名、出生日期、学号和百分比,并打印出他的年龄和年级。在此,我们使用 Scanner 类的 netXXX() 方法读取数据。
示例
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.Period;
import java.time.ZoneId;
import java.util.Date;
import java.util.Scanner;
public class ScannerExample {
public static void main(String args[]) throws Exception {
Scanner sc = new Scanner(System.in);
System.out.println("Enter your name: ");
String name = sc.next();
System.out.println("Enter your date of birth (dd-MM-yyyy): ");
String dob = sc.next();
System.out.println("Enter your roll number: ");
int rollNumber = sc.nextInt();
System.out.println("Enter your percentage: ");
float percent = sc.nextFloat();
//Getting Date object from given String
Date date = new SimpleDateFormat("dd-MM-yyyy").parse(dob);
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
//Calculating age
Period period = Period.between(localDate, LocalDate.now());
System.out.print("Hello "+name+" your current age is: ");
System.out.print(period.getYears()+" years "+period.getMonths()+" and "+period.getDays()+" days");
System.out.println();
if(percent>=80){
System.out.println("Your grade is: A");
} else if(percent>=60 && percent<80) {
System.out.println("Your grade is: B");
}
else if(percent>=40 && percent<60){
System.out.println("Your grade is: C");
} else {
System.out.println("Your grade is: D");
}
}
}输出
Enter your name: Krishna Enter your date of birth (dd-MM-yyyy): 26-09-1989 Enter your roll number: 1254 Enter your percentage: 83 Hello Krishna your current age is: 29 years 9 and 5 days Your grade is: A
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP