[size=x-large][b][color=red]一、通过java.util.Scanner类获取输入[/color][/b][/size]
[size=x-large][color=red][b]二、通过输入流获取输入[/b][/color][/size]
import java.util.Scanner;
public class data{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("输入一个数");
int data_1 = input.nextInt();
System.out.println("输入一个字符");
String str = input.next();
System.out.println("输入一个实数");
double data_2 = input.nextDouble();
String huiche = input.nextLine();
/*
nextXXX()方法的工作原理:
从一行中扫描,直到碰到特定的标识符:空格或是换行符(\n),便获取之前的东西。
nextDouble()读取了之前的数据,但并没有读入"\n",也不负责换行,然后就把 "\n"丢给了nextLine()处理,
nextLine()看见“\n”就收了,然后扫描了 \n 之前的内容,也就是空字符串。于是出现问题了。
*/
System.out.println("输入一行字符:");
String str2 = input.nextLine();
System.out.println("输入的这个数为:"+data_1);
System.out.println("输入的这个字符为:"+str);
System.out.println("输入的这个实数为:"+data_2);
System.out.println("输入的这个字符为:"+str2);
}
}
[size=x-large][color=red][b]二、通过输入流获取输入[/b][/color][/size]
第一个JAVA文件
import java.io.*;
class MuLei{
private BufferedReader br=null;
public MuLei(){
br=new BufferedReader(new InputStreamReader(System.in));
}
public int fun(String str){
System.out.println(str);
int a=0;
try{
a=Integer.parseInt(br.readLine());
}catch(Exception e){
System.out.println("请输入一个整数!");
fun(str);
}
return a;
}
public void add(int a,int b){
System.out.printf("%s+%s=%s",a,b,(a+b));
}
}
第二个JAVA文件:
public int fun(String str){
System.out.println(str);
int a=0;
try{
a=Integer.parseInt(br.readLine());
}catch(Exception e){
System.out.println("请输入一个整数!");
return fun(str);//注意这里,把函数的返回值要赋给a,不然a就还是初始值0。
}
return a;
}