Java学习——java的Scanner类,
分享于 点击 2984 次 点评:86
Java学习——java的Scanner类,
1、通过 Scanner 类来获取用户的输入,Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据
next()方法:
package test_script;
import java.util.Scanner;
public class ScanerDemo {
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
System.out.println("next方式接收:");
if(scan.hasNext()){
String str1=scan.next();
System.out.println("输入的数据为:"+str1);
}
scan.close();
}
}
运行结果:
next方式接收:
wd12343454 456tryth
输入的数据为:wd12343454
nextLine()方法:
package test_script;
import java.util.Scanner;
public class ScanerDemo {
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
System.out.println("nextLine方式接受:");
if(scan.hasNextLine()){
String str2=scan.nextLine();
System.out.println("输入的数据为:"+str2);
}
scan.close();
}
}
运行结果:
nextLine方式接受:
132rsers 54ytrttht etyutyj
输入的数据为:132rsers 54ytrttht etyutyj
注意:next()和nextLine()方法返回的都是String类型的数据;
next() 与 nextLine() 区别
next():
- 1、一定要读取到有效字符后才可以结束输入。
- 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
- 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- next() 不能得到带有空格的字符串。
nextLine():
- 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
- 2、可以获得空白
- 一个回车符代表一个数据;
2、如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取
package test_script;
import java.util.Scanner;
public class ScannerDemo1 {
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
int i=0;
float f=0.0f;
System.out.println("输入整数:");
if(scan.hasNextInt()){
i=scan.nextInt();
System.out.println("整数数据:"+i);
}else{
System.out.println("输入的不是整数!");
}
System.out.println("输入小数:");
if(scan.hasNextFloat()){
f=scan.nextFloat();
System.out.println("小数数据:"+f);
}else{
System.out.println("输入的不是小数");
}
scan.close();
}
}
运行结果:
输入整数:
3.5 5
输入的不是整数!
输入小数:
小数数据:3.5
注意:此外还有hasNextByte\hasNextLong等类型的;
3、从键盘中输入10个存入数组中:
package test_script;
import java.util.Scanner;
public class ScannerDemo3 {
static int number = 10;
static int[] t1 = new int[number];
static int[] t2 = new int[number];
static void input() {
System.out.println("请输入T1序列:");
Scanner in_t1 = new Scanner(System.in);//循环输入T1数组
for (int i = 0; i < number; i++) {
t1[i] = in_t1.nextInt();
}
System.out.println("请输入T2序列:");
Scanner in_t2 = new Scanner(System.in);//循环输入T2数组
for (int i = 0; i < number; i++) {
t2[i] = in_t2.nextInt();
}
System.out.println("T1数组:");
for (int i = 0; i < number; i++) { //输出两个数组
System.out.print("[" + t1[i] + "]");
}
System.out.println("\nT2数组:");
for (int i = 0; i < number; i++) {
System.out.print("[" + t2[i] + "]");
}
}
public static void main(String[] args) {
input();
}
}
运行结果:
请输入T1序列:
0 98 8 7 6 5 4 3 2 1
请输入T2序列:
0 12 3 4 5 6 7 8 9 2
T1数组:
[0][98][8][7][6][5][4][3][2][1]
T2数组:
[0][12][3][4][5][6][7][8][9][2]
Process finished with exit code 0
相关文章
- 暂无相关文章
用户点评