声明:该文是在其他博文的基础上加以修改总结而来。


1、Java从键盘输入的基本语句:

格式1Scanner sc = new Scanner (new BufferedInputStream(System.in));

格式2Scanner sc = new Scanner (System.in);

注意:在读入数据量大的情况下,格式1的速度会快些。

读一个整数: int n = sc.nextInt();

读一个字符串:String s = sc.next();

读一个浮点数:double t =sc.nextDouble()

读一整行: String s = sc.nextLine();

判断是否有下一个输入可以用sc.hasNext()或sc.hasNextInt()或sc.hasNextDouble()或sc.hasNextLine();

示例1:读入整数

Input 输入数据有多组,每组占一行,由一个整数组成。

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);
        while(scan.hasNext()){
            //读入整数语句
            int score=scan.nextInt();
            //输出从键盘输入的整数
            System.out.println(score);
        }
    }
}


示例2:读入实数

可以输入多组数据,每组占2行,第一行为一个整数N,指示第二行包含N个实数。

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        while(sc.hasNext()){
            //每组的第一行:读入整数n
            int n = sc.nextInt();
            for(int i=0;i<n;i++){
                //每组的第二行:读入n个实数
                double a = sc.nextDouble();
                System.out.print(a+" ");//测试
            }
        }    
    }
}


示例3:读入字符串

1)输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。


import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);  
            //第一行:读入整数n
            int n = sc.nextInt();
            for(int i=0;i<n;i++){
                //读入n行字符串
                String a = sc.next();
                //System.out.print(a+" ");//测试
            }            
    }
}


2)给定一个日期,输出这个日期是该年的第几天。

Input 输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成。

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] dd = {0,31,28,31,30,31,30,31,31,30,31,30,31};   
        while(sc.hasNext()){
            int days = 0;
            //输入数据例如2013/9/23
            String str = sc.nextLine();
            //将输入的字符串拆分
            String[] date = str.split("/");
            int y = Integer.parseInt(date[0]);//年 字符串转换为int的方法
            int m = Integer.parseInt(date[1]);//月
            int d = Integer.parseInt(date[2]);//日
                      
            //闰年的二月是29天所以要days++
            if((y%400 == 0 || (y%4 == 0 && y%100 !=0)) && m>2) days ++;
            days += d;
            for(int i=0;i<m;i++){
                days += dd[i];
            }
            System.out.println(days);
        }
    }
}