键盘的输入流
文章目录
通过键盘输入
-
首先我们需要 import java.util.Scanner; 放在程序的开头(类声明的前面)
-
再把 Scanner stdI(这里为 i 的大写)n = new Scanner(System.in) ; 放在 main 方法的开头(进行下面的读入操作)
-
最后用 stdI(这里为 i 的大写)n.nextInt 获取通过键盘输入的整数值
有 stdIn.nextBoolean(); // 读入布尔类型值 stdIn.nextByte(); // 读入字节类型值 stdIn.nextShort(); // 读入短整型值 stdIn.nextInt(); // 读入整数类型值 stdIn.nextLong(); // 读入长整型值 stdIn.nextDouble(); // 读入双精度浮点型值 stdIn.nextFloat(); // 读入单精度浮点型值 stdIn.next(); // 读入字符串值 stdIn.nextLine(); // 读入字符串值
-
注意,一定要输入对应的类型的值,不要输入不对应的数值,不然会出错
代码1;
import java.util.Scanner; // 放在程序的开头(类的的声明的前面)
public class Study6 {
public static void main (String[] args) {
Scanner stdIn = new Scanner (System.in); // 放在main 方法的开头(进行为下面读入的操作)
long num = stdIn.nextLong(); // 获取通过键盘输入的长整型值
System.out.print("请输入long类型的值: ");
System.out.println("num= "+num);
}
}
结果1:
解析1:
- 这里我故意输入错误不对应的类型,本应该输入 long 类型的数值我却输入了一个 字符型值 “好”,
- 结果报错的,因为Java是一种强类型的语言,所以输入的值,一定要输入相对应的类型的数值才行,不然编译不过去的,而C语言可以只是报一个警告,可以编译过去的。更加体现了 Java 的安全性,以及强类型语言;
代码2
import java.util.Scanner; // 放在程序的开头(类的的声明的前面)
public class Study6 {
public static void main (String[] args) {
Scanner stdIn = new Scanner(System.in); // 放在main方法的开头(进行下面的读入的操作)
boolean boolVariate = stdIn.nextBoolean();
System.out.println("boolVariate= "+boolVariate);
byte byteVariate = stdIn.nextByte();
System.out.println("byteVariate= "+byteVariate);
short shortVariate = stdIn.nextShort();
System.out.println("shortVariate= "+shortVariate);
int intVariate = stdIn.nextInt();
System.out.println("intVariate= "+intVariate);
long longVariate = stdIn.nextLong();
System.out.println("longVariate= "+longVariate);
float floatVariate = stdIn.nextFloat();
System.out.println("floatVariate= "+floatVariate);
double doubleVariate = stdIn.nextDouble();
System.out.println("doubleVariate= "+doubleVariate);
}
}
结果2:
字符串的读入
-
stdIn(注意这里是 i 字母的大写).next ()
stdIn(注意这里是 i 字母的大写).nextLine ()
-
我们来探究他们的不同点:
stdIn(注意这里是 i 字母的大写).next() 的探究
代码
import java.util.Scanner; // 放在程序的开头(类的的声明的前面)
public class Study6 {
public static void main (String[] args) {
Scanner stdIn = new Scanner (System.in); // 放在main 方法的开头(进行下面的读入的操作)
/*对字符中的stdIn.next()的探究*/
System.out.print("请输入:");
String str = stdIn.next(); // 获取键盘中字符串
System.out.println("你输入的是:"+str);
}
}
结果:
解析:
- 上述代码我们输入一串字符 你好 世界 ,中间加了一个空格,结果我们输出的不是完整的字符串,而是输出空格之前的字符 你好
- 这里我们就可以看出,使用next() 读入通过键盘输入的字符串时,空白字符(也就是空格)和制表符会被视为字符串的分隔符。因此,只会读取空格之前的字符数据;
stdIn(注意这里是 i 字母的大写).nextLine()的探究
代码:
import java.util.Scanner; // 放在程序的开头(类的的声明的前面)
public class Study6 {
public static void main (String[] args) {
Scanner stdIn = new Scanner (System.in); // 放在 main 方法的开头(进行下面的读入的操作)
/*对字符串stdIn.nextLine()的探究*/
System.out.print("请输入:");
String str = stdIn.nextLine(); // 获取键盘中的字符串
System.out.println("输入的是:"+str);
}
}
结果:
解析:
-
上述代码我们输入了 字符 你好 世界 ,输出了完整的字符数据 你好 世界
-
这里我们明显发现它们的不同了,nextLine() 它可以读取到空格,next() 不能读取到空格
最后:
限于自身的水平问题,其中存在的错误,希望各位大家给予指教,韩信点兵——多多益善,谢谢大家,后会有期,江湖再见!