Java中Scanner类的使用理解

版权声明:未经允许,禁止转载. https://blog.csdn.net/Loongstyle/article/details/82664030

文章目录


1_1接收int类型:
1_2接收Float/Double/Byte/Short/Long类型:
2_1接收char类型:
2_2接收char类型的原理:
3_1接收String类型:
3_2接收String用nextLine()和next()的区别:
4.String类的方法hasNextXxx()和nextXxx()的区别:
5.API中Scanner类说明:




使用前必须导包:import java.util.Scanner;

1_1接收int类型:

Scanner sc=new Scanner();
int s=sc.nextInt();

      [注1]:nextInt之类的方法录入数后自动加上/r/n


1_2接收Float/Double/Byte/Short/Long类型:

Scanner sc=new Scanner();
float s=sc.nextFloat();

2_1接收char类型:

    Scanner sc=new Scanner();
    char sex=sc.next().charAt(0);    //next().charAt(0); 从控制台输入的字符串中获取第一个字符

2_2接收char类型的原理:

      由于Scanner类没有提供直接输入char类型的方法,从next()或者nextLine()获取输入的字符。
      可以通过String类的charAt()方法返回指定索引处的 char 值


3_1接收String类型:

Scanner sc = new Scanner(System.in);
String s = sc.nextLine();			
String s = sc.next();			

3_2接收String用nextLine()和next()的区别:

      nextLine()扫描第一个字符串, 碰到回车/r/n终止输入
                      联系[注1]:,因此刚用nextInt之类,中间要新建对象或所有数据都按照字符串获取再转换
      next()扫描第一个有效字符(非空格、非换行符)开始扫描,
                碰到空格,回车,Tab键都会被视为终止符


4.String类的方法hasNextXxx()和nextXxx()的区别:

      效果相同: 系统都会等待输入下一个字符。
      作用不同: hasNext()是判断是否还有下一个输入项,next()是获取下一个输入项.
      返回值不同: hasNext()符合类型会返回true,否则返回false.
                          next()符合类型返回输入的字符, 否则报错.

hasNextXxx常用于判断,例如:

if(sc.hasNextInt()){
	int i = sc.nextInt();
	System.out.println(i);
}else {
	System.out.println("Input error");
}



5.API中Scanner类说明:
java.util
类 Scanner
java.lang.Object
继承者 java.util.Scanner
所有已实现的接口:
Iterator

public final class Scannerextends Objectimplements Iterator一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。

Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。

方法摘要
void close()
关闭此扫描器。
Pattern delimiter()
返回此 Scanner 当前正在用于匹配分隔符的 Pattern。
String findInLine(Pattern pattern)
试图在忽略分隔符的情况下查找下一个指定模式。
String findInLine(String pattern)
试图在忽略分隔符的情况下查找下一个从指定字符串构造的模式。
String findWithinHorizon(Pattern pattern, int horizon)
试图查找下一个指定模式。
String findWithinHorizon(String pattern, int horizon)
试图在忽略分隔符的情况下查找下一个从指定字符串构造的模式。
boolean hasNext()
如果此扫描器的输入中有另一个标记,则返回 true。
boolean hasNext(Pattern pattern)
如果下一个完整标记与指定模式匹配,则返回 true。
boolean hasNext(String pattern)
如果下一个标记与从指定字符串构造的模式匹配,则返回 true。
boolean hasNextBigDecimal()
如果通过使用 nextBigDecimal() 方法,此扫描器输入信息中的下一个标记可以解释为默认基数中的一个 BigDecimal,则返回 true。
boolean hasNextBigInteger()
如果通过使用 nextBigInteger() 方法,此扫描器输入信息中的下一个标记可以解释为默认基数中的一个 BigInteger 值,则返回 true。
boolean hasNextBigInteger(int radix)
如果通过使用 nextBigInteger() 方法,此扫描器输入信息中的下一个标记可以解释为指定基数中的一个 BigInteger 值,则返回 true。
boolean hasNextBoolean()
如果通过使用一个从字符串 “true|false” 创建的大小写敏感的模式,此扫描器输入信息中的下一个标记可以解释为一个布尔值,则返回 true。
boolean hasNextByte()
如果通过使用 nextByte() 方法,此扫描器输入信息中的下一个标记可以解释为默认基数中的一个字节值,则返回 true。
boolean hasNextByte(int radix)
如果通过使用 nextByte() 方法,此扫描器输入信息中的下一个标记可以解释为指定基数中的一个字节值,则返回 true。
boolean hasNextDouble()
如果通过使用 nextDouble() 方法,此扫描器输入信息中的下一个标记可以解释为默认基数中的一个 double 值,则返回 true。
boolean hasNextFloat()
如果通过使用 nextFloat() 方法,此扫描器输入信息中的下一个标记可以解释为默认基数中的一个 float 值,则返回 true。
boolean hasNextInt()
如果通过使用 nextInt() 方法,此扫描器输入信息中的下一个标记可以解释为默认基数中的一个 int 值,则返回 true。
boolean hasNextInt(int radix)
如果通过使用 nextInt() 方法,此扫描器输入信息中的下一个标记可以解释为指定基数中的一个 int 值,则返回 true。
boolean hasNextLine()
如果在此扫描器的输入中存在另一行,则返回 true。
boolean hasNextLong()
如果通过使用 nextLong() 方法,此扫描器输入信息中的下一个标记可以解释为默认基数中的一个 long 值,则返回 true。
boolean hasNextLong(int radix)
如果通过使用 nextLong() 方法,此扫描器输入信息中的下一个标记可以解释为指定基数中的一个 long 值,则返回 true。
boolean hasNextShort()
如果通过使用 nextShort() 方法,此扫描器输入信息中的下一个标记可以解释为默认基数中的一个 short 值,则返回 true。
boolean hasNextShort(int radix)
如果通过使用 nextShort() 方法,此扫描器输入信息中的下一个标记可以解释为指定基数中的一个 short 值,则返回 true。
IOException ioException()
返回此 Scanner 的底层 Readable 最后抛出的 IOException。
Locale locale()
返回此扫描器的语言环境。
MatchResult match()
返回此扫描器所执行的最后扫描操作的匹配结果。
String next()
查找并返回来自此扫描器的下一个完整标记。
String next(Pattern pattern)
如果下一个标记与指定模式匹配,则返回下一个标记。
String next(String pattern)
如果下一个标记与从指定字符串构造的模式匹配,则返回下一个标记。
BigDecimal nextBigDecimal()
将输入信息的下一个标记扫描为一个 BigDecimal。
BigInteger nextBigInteger()
将输入信息的下一个标记扫描为一个 BigInteger。
BigInteger nextBigInteger(int radix)
将输入信息的下一个标记扫描为一个 BigInteger。
boolean nextBoolean()
扫描解释为一个布尔值的输入标记并返回该值。
byte nextByte()
将输入信息的下一个标记扫描为一个 byte。
byte nextByte(int radix)
将输入信息的下一个标记扫描为一个 byte。
double nextDouble()
将输入信息的下一个标记扫描为一个 double。
float nextFloat()
将输入信息的下一个标记扫描为一个 float。
int nextInt()
将输入信息的下一个标记扫描为一个 int。
int nextInt(int radix)
将输入信息的下一个标记扫描为一个 int。
String nextLine()
此扫描器执行当前行,并返回跳过的输入信息。
long nextLong()
将输入信息的下一个标记扫描为一个 long。
long nextLong(int radix)
将输入信息的下一个标记扫描为一个 long。
short nextShort()
将输入信息的下一个标记扫描为一个 short。
short nextShort(int radix)
将输入信息的下一个标记扫描为一个 short。
int radix()
返回此扫描器的默认基数。
void remove()
Iterator 的这种实现不支持移除操作。
Scanner reset()
重置此扫描器。
Scanner skip(Pattern pattern)
在忽略分隔符的情况下跳过与指定模式匹配的输入信息。
Scanner skip(String pattern)
跳过与从指定字符串构造的模式匹配的输入信息。
String toString()
返回此 Scanner 的字符串表示形式。
Scanner useDelimiter(Pattern pattern)
将此扫描器的分隔模式设置为指定模式。
Scanner useDelimiter(String pattern)
将此扫描器的分隔模式设置为从指定 String 构造的模式。
Scanner useLocale(Locale locale)
将此扫描器的语言环境设置为指定的语言环境。
Scanner useRadix(int radix)
将此扫描器的默认基数设置为指定基数。

猜你喜欢

转载自blog.csdn.net/Loongstyle/article/details/82664030
今日推荐