Scanner类& 键盘中循环输入多行数组的方法

您所在的位置:网站首页 java如何输入一串字符数组 Scanner类& 键盘中循环输入多行数组的方法

Scanner类& 键盘中循环输入多行数组的方法

2024-07-13 20:52| 来源: 网络整理| 查看: 265

总结补充一下: next(),nextInt(),nextDouble()…:这些可以认为是一类,首先这些都是阻塞式的,意思就是如果遇到空格,Tab,Enter,会继续等待,直到获得相应类型相应的值!对输入有效字符之前遇到的空白,这些方法会自动将其去掉。只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。 另外一类是nextLine()::当使用nextLine()方法时会读取改行从前到的所有的内容,包括换行符。以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。可以获得空白。

一、Scanner类简介

Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序。Scanner类可以任意地对字符串和基本类型(如int和double)的数据进行分析。借助于Scanner,可以从键盘中读入数据。

二、Scanner类用法

java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。 下面是导包和创建 Scanner 对象的基本语法:

import java.util.Scanner Scanner s = new Scanner(System.in); 基本数据类型 创建input对象以后,input对象调用下列方法(函数),读取用户在命令行输入的各种基本数据类型: nextInt(); next.Byte(); nextDouble(); nextFloat(); nextLong(); nextShot() 

还有一组常用的方法,用来判断输入的数据是否满足要求:

hasNextInt(); hasNext.Byte(); hasNextDouble(); hasNextFloat(); hasNextLong(); hasNextShot() 

举个例子:

import java.util.Scanner; public class Test{ public static void main(String args[]){ Scanner input = new Scanner(System.in); int a = input.nextInt(); System.out.print(a); } } //输入:34 //回车输出结果:34

如果输入的数据类型不是int类型,会报错,比如输入5.6会报错。所以可以使用hasNextInt方法先判断输入的流是否是int类型,是int类型就输出,不是int类型,提醒输出输入类型不对。

import java.util.Scanner; public class Test{ public static void main(String args[]){ Scanner input = new Scanner(System.in); if(input.hasNextInt()){ int a = input.nextInt(); System.out.print(a); } System.out.print("类型不对"); } } //输入3.4 //回车结果:类型不对 字符串 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们也可以先使用 hasNext 与 hasNextLine 判断是否还有输入的数据。

next() 一定要读取到有效字符后才可以结束输入。 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。 next() 不能得到带有空格的字符串。

nextLine() 以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。 可以获得空白。

举个例子:

import java.util.Scanner; public class ScannerDemo { public static void main(String[] args) { Scanner input= new Scanner(System.in); // 从键盘接收数据 // next方式接收字符串 System.out.println("next方式接收:"); // 判断是否还有输入 if (input.hasNext()) { String str1 = input.next(); System.out.println("输入的数据为:" + str1); } input.close(); //也可以不写这个close } } //next方式接收: //abc def //输入的数据为:abc import java.util.Scanner; public class Test{ public static void main(String args[]){ Scanner input= new Scanner(System.in); // 从键盘接收数据 // next方式接收字符串 System.out.println("nextLine方式接收:"); // 判断是否还有输入 if (input.hasNextLine()) { String str1 = input.nextLine(); System.out.println("输入的数据为:" + str1); } input.close(); //也可以不写这个close } } //nextLine方式接收: //abc def //输入的数据为:abc def 三、输入多种数据类型,多行数据

做面试题的时候往往遇见,这种要求:第一行输入一个整数n,然后接下来n行输入数组,然后后续操作是处理这些数组。

比如: 第一行输入:3 第二行输入:20 30 第三行输入:10 40 第四行输入:3 5

自己原来的想法就是,先用一个int类型数据利用方法nextInt接收n,然后循环n次,每次循环都利用nextLine方法接收接下来的字符串,在将字符串通过split()方法变为数组,将数组中的每个元素强制类型转换为int类型。但是这种方法会报错。

import java.util.Scanner; public class Test{ public static void main(String args[]){ Scanner input = new Scanner(System.in); int n=input.nextInt(); //获得第一行数据,一个整数n System.out.print(n); for(int j=0; j


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3