java语言的各种输入情况(ACM常用)

时间:2024-01-11 19:53:26

1.只输入一组数据:
Scanner s=new Scanner(System.in);
int a=s.nextInt();
int b=s.nextInt();

2.输入有多组数据,没有说明输入几组数据,每组数据占一行:
Scanner s=new Scanner(System.in);
while(s.hasnext()){//判断是否数据结束
int a=s.nextInt();
int b=s.nextInt();
}

3.输入多组数据,第一行为一个整数N,表示有N组测试数据,后面的接着又N组数据,每组数据占一行;
int a;
int b;
int n;
System.out.println("请输入一个整数n:");
Scanner in=new Scanner(System.in);
n=in.nextInt();
for(int i=0;i<n;i++){
System.out.println("请输入一个整数a和b:");
Scanner s=new Scanner(System.in);
a=s.nextInt();
b=s.nextInt();
System.out.println(a+b);
}
3.读入字符串
输入数据有多行,第一行是一个整数n,代表测试实数的个数,后面紧跟着n行;
System.out.println("请输入一个整数n:");
Scanner s=new Scanner(System.in);
int n=s.nextInt();
for(int i=0;i<n;i++){
String str=s.next();
System.out.println(str);
}
或者可以这样书写:
System.out.println("请输入一个整数n");
Scanner s=new Scanner(System.in);
int n=Integer.parseInt(s.nextLine());
for(int i=0;i<n;i++){
String str=s.nextLine();
System.out.println(str);
}
3.输入字符串
如给定一个日期,输出这个日期是该年的第几天?
System.out.println("请输入一个年份");
Scanner s=new Scanner(System.in);
int dd[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
while(s.hasNext()){
int days=0;
String str=s.nextLine();
String[] date=str.split("/");
int y=Integer.parseInt(date[0]);
int m=Integer.parseInt(date[1]);
int d=Integer.parseInt(date[2]);
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);
}