1.通过System.in方法输入
2.通过InputStreamReader和BufferedReader方法输入
3.通过Scanner类中的方法输入
package Problems_Solution;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Scanner;
public class IoExercise {
public static void main(String[] args) {
charTest();//静态方法,直接调用
ReadTest();
ScannerTest();
}
/*
*System.in和System.out方法
* 该方法能获取从键盘输入的单个字符
* 获取的只是char类型的。如果想获得int,float等类型的输入需要类型转换
*/
public static void charTest(){
try {
char ch=(char)System.in.read();//默认char型,定义为int不会报错但输出是ascii码
System.out.println(ch);
String str=String.valueOf(ch);//char 转String
System.out.println(getType(Integer.parseInt(str)));//String 转 int
} catch (IOException e) {
e.printStackTrace();
}
}
/*
* InputStreamReader和BufferedReader方法
* 可以获取字符串,不限制长度
* 如何要获取的是int,float等类型的仍然需要转换
*/
public static void ReadTest(){
InputStreamReader is = new InputStreamReader(System.in); //new构造InputStreamReader对象
BufferedReader br = new BufferedReader(is);
try {
String s=br.readLine();//读取一行
System.out.println(s);//输出字符串
String[] arr = s.split(",");//字符串数组
int[] b = new int[arr.length];
for(int j = 0; j<b.length;j++) {
b[j] = Integer.parseInt(arr[j]);//String 转换成int
}
for(int i:b){
System.out.println(i);
}
} catch (IOException e) {
e.printStackTrace();
}
}
/*
* Scanner类中的方法
* 可以获取键盘输入的字符串
* 可以直接获取int,float等类型数据
*/
public static void ScannerTest(){
Scanner sc = new Scanner(System.in);
String name = sc.nextLine(); //读取一行字符串型输入
System.out.println(name);
int age = sc.nextInt(); //读取整型输入
float score = sc.nextFloat(); //读取float型输入
System.out.println("Name:" + name +"\n" + "Age:"+age + "\n"+"Salary:"+score);
String arr[]=name.split(" ");
System.out.println(Arrays.toString(arr));//输出数组元素 Arrays.toString(a),返回一个包含数组元素的字符串,这些元素被放置在括号内,并用逗号分开
}
public static String getType(Object o){ //获取变量类型方法
return o.getClass().toString(); //使用int类型的dugetClass()方法
}
}