`

35、java.util.Scanner类

阅读更多

一、Scanner

 

  1. 一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
  2. Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。
  3. 然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。 
  4. 扫描操作可能被阻塞,而等待信息的输入。
  5. jdk1.5开始的
public final class Scanner implements Iterator<String>
{
	//构造一个新的 Scanner,它生成的值是从指定文件扫描的。来自该文件的字节通过底层平台的默认字符集转换成字符
	public Scanner(File source)
        throws FileNotFoundException{}

	//构造一个新的 Scanner,它生成的值是从指定文件扫描的。来自该文件的字节通过指定字符集转换成字符。
	public Scanner(File source,
               String charsetName)
        throws FileNotFoundException{}

	//构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。取自该流的字节通过底层平台的默认字符集转换成字符
	public Scanner(InputStream source){}

	//构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。来自该流的字节通过指定字符集转换成字符。 
	public Scanner(InputStream source,
               String charsetName){}

	//构造一个新的 Scanner,它生成的值是从指定字符串扫描的
	public Scanner(String source){}


	//关闭此扫描器。
	public void close(){}

	//返回此 Scanner 当前正在用于匹配分隔符的 Pattern
	public Pattern delimiter(){}

	//试图在忽略分隔符的情况下查找下一个指定模式。
	public String findInLine(Pattern pattern){}

	//试图在忽略分隔符的情况下查找下一个从指定字符串构造的模式
	public String findInLine(String pattern){}

	//如果此扫描器的输入中有另一个标记,则返回 true。在等待要扫描的输入时,此方法可能阻塞。扫描器将不执行任何输入。
	public boolean hasNext(){}

	//如果下一个完整标记与指定模式匹配,则返回 true。完整标记以与分隔模式匹配的输入信息为前后缀。在等待输入信息时,此方法可能阻塞。扫描器不执行任何输入。
	public boolean hasNext(Pattern pattern){}

	public boolean hasNext(String pattern){}

	//查找并返回来自此扫描器的下一个完整标记。完整标记的前后是与分隔模式匹配的输入信息
	public String next(){}

	//如果下一个标记与指定模式匹配,则返回下一个标记。
	public String next(Pattern pattern){}

	public String next(String pattern){}

	//将输入信息的下一个标记扫描为一个 int。 
	public int nextInt(){}

	public int nextInt(int radix){}

	nextShort()也可以指定基数

	//返回此扫描器的默认基数
	public int radix(){}

	//在忽略分隔符的情况下跳过与指定模式匹配的输入信息。
	public Scanner skip(Pattern pattern){}

	public Scanner skip(String pattern){}

	//将此扫描器的分隔模式设置为指定模式
	public Scanner useDelimiter(Pattern pattern){}

	public Scanner useDelimiter(String pattern){}

	//将此扫描器的默认基数设置为指定基数。
	public Scanner useRadix(int radix){}
}

 

二、示例

 

 
import java.util.*;
class ScannerDemo 
{
	public static void main(String[] args) 
	{
		System.out.println("请输入若干个数,每输入一个数用回车确认");
		System.out.println("最后输入一个非数字结束输入操作");

		Scanner scan = new Scanner(System.in);

		double sum = 0;
		int m = 0;

		while(scan.hasNextDouble())
		{
			double x = scan.nextDouble();
			m = m + 1;
			sum = sum + x;
		}

		System.out.println(m+"个数的和为"+sum);
		System.out.println(m+"个数的平均值是"+(sum/m));
	}
}

 

import java.util.*;
import java.io.*;
/**
 *读取并分析文本文件:hrinfo.txt,
 *文本文件的内容如下:老赵,28,feb-01,true小竹,22,dec-03,false阿波,21,dec-03,false凯子,25,dec-03,true
 */
class ScannerDemo 
{
	public static void main(String[] args) throws Exception
	{
		readFile("f:\\hrinfo.txt");
	}
	private static void readFile(String fileName)throws Exception
	{
		Scanner scan = new Scanner(new File(fileName));
		scan.useDelimiter(System.getProperty("line.separator"));
		while(scan.hasNext())
		{
			parseLine(scan.next());
		}
		scan.close();
	}
	private static void parseLine(String line)
	{
		Scanner scan = new Scanner(line);
		scan.useDelimiter(",");
		String name = scan.next();
		int age = scan.nextInt();
		String date = scan.next();
		boolean b = scan.nextBoolean();
		System.out.println("姓名:"+name+" 年龄:"+age+" 入司时间:"+date+" 验证标记:"+b);
	}
}

 

import java.util.*;

class ScannerDemo 
{
	public static void main(String[] args) 	{
		Scanner scan = new Scanner("zhangsan..20..lisi...15......wangwu.18...ermazi.19.haha..20");
		scan.useDelimiter("\\.+");
		while(scan.hasNext())
		{
			System.out.println(scan.next());
			System.out.println(scan.nextInt());
		}
	}
}

  

import java.util.*;

class ScannerDemo 
{
	public static void main(String[] args) 	{
		Scanner scan = new Scanner(System.in);
		System.out.print("请输入姓名:");
		String name = scan.next();

		System.out.println("请输入语文数学英语成绩,用空格隔开:");
		double yuWen = scan.nextDouble();
		double shuXue = scan.nextDouble();
		double yingYu = scan.nextDouble();

		System.out.println("姓名:"+name+" 语文:"+yuWen+" 数学:"+shuXue+" 英语:"+yingYu+" 总分:"+(yuWen+shuXue+yingYu));
	}
}

 

import java.util.*;

class ScannerDemo 
{
	public static void main(String[] args) 	{
		Scanner scan = new Scanner(System.in);
		while(true)
		{
			String line = scan.nextLine();
			if(line.equals("over"))
				break;
			System.out.println(">>>"+line);
		}
	}
}

 

import java.util.*;

class ScannerDemo 
{
	public static void main(String[] args) 	{
		Scanner scan = new Scanner(System.in);
		while(true)
		{
			String line = scan.next();
			if(line.equals("over"))
				break;
			System.out.println(">>>"+line);
		}
	}
}

import java.util.*;

class ScannerDemo 
{
	public static void main(String[] args) throws Exception
	{
		Scanner scan = new Scanner("123 asdf sd 45 789 sdf asdfl,sdf.sdfl,asdf    ......asdfkl    las");
		scan.useDelimiter(" +|,|\\.+");
		while(scan.hasNext())
		{	
			System.out.println(scan.next());
		}
	}
}
 
分享到:
评论

相关推荐

    金字塔import java.util.Scanner;public class Test3 {

    import java.util.Scanner; public class Test3 { public static void main(String[] args) { System.out.println("请您输入要打印的金字塔的行数: "); Scanner sca=new Scanner(System.in); int nu=sca....

    java代码-import java.util.Scanner;

    java代码-import java.util.Scanner;

    java.util.Scanner应用详解_.docx

    java.util.Scanner应用详解_.docx

    java代码-实训4-3 import java.util.Scanner

    java代码-实训4-3 import java.util.Scanner

    Java Scanner 类.pdf

    一、什么是 Java Scanner 类? Java Scanner 类是 Java 中一个用于读取用户输入的类,它可以从标准输入、文件、字符串等多种输入源中读取数据,并将数据转换为 Java 中的各种数据类型。 二、引用数据类型 我们要学的...

    Scanner 踩坑:java.util.NoSuchElementException(csdn)————程序.pdf

    Scanner 踩坑:java.util.NoSuchElementException(csdn)————程序

    Java Scanner 类

    java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。  下面是创建 Scanner 对象的基本语法:  Scanner s = new Scanner(System.in);  接下来我们演示一个简单的的数据输入,并...

    java输入语句scanner.docx

    java输入语句scanner 在 Java 中,要获取用户的输入可以使用 `Scanner` 类。`Scanner` 类位于 `java.util` 包中,它提供了各种方法来从标准输入流(通常是键盘)中读取... String name = scanner.nextLine(); // 提示

    Einleser:java.util.Scanner 的示例

    读者java.util.Scanner 的示例

    Java基础之Scanner键盘录入.docx

    在java前期的学习当中Scanner键盘录入可以用来模拟现实中的前端向后台传输数据的情形,便于我们理解和学习java

    类qq聊天工具

    37. import java.util.Scanner; 38. import java.util.Stack; 39. import java.util.prefs.Preferences; 40. 41. import javax.swing.BoxLayout; 42. import javax.swing.ImageIcon; 43. import javax.swing....

    Java学生成绩管理系统实例(ArrayList)

    大家好,我是Ziph! 学生成绩管理系统实例 实现一个学生成绩管理的简单系统...import java.util.Scanner; /** * @Author Ziph * @date 2020/2/19 * @Email mylifes1110@163.com */ public class TestDemo implemen

    Java设计二次元动漫人物演出活动小游戏代码.docx

    import java.util.Scanner; public class AnimeShowGame { // 声明全局变量 private static ArrayList&lt;String&gt; characters = new ArrayList(); private static ArrayList&lt;String&gt; actions = new ArrayList(); ...

    java输入语句scanner用法讲解.pdf

    Scanner是Java中的一个实用程序类,它位于java.util包下。Scanner类主要用于扫描输入文本,并可以从控制台、文件、输入流等读取原始数据,然后按照各种基本类型(如int、double、String等)的格式解析数据。 通过...

    Java课程设计-老鼠走迷宫

    import java.util.Scanner; /** * 使用递归分割绘制迷宫 * * @author WangSong * * @Time 2020-6-22 */ abstract class Arithmetic { /** 路表示为1 */ public final int ROUND = 1; /** 墙表示为0 */ ...

    Java程序设计基础:控制台输入输出.pptx

    控制台输入输出 目录 控制台输入输出 掌握Scanner对象的创建 掌握Scanner对象读取数据的方法 ...import java.util.Scanner; 或 import java.util.*; 使用Scanner类创建对象 Scanner in = new Scanner(S

    用Java设计凯撒密码的代码

    “恺撒密码”据传是古罗马恺撒大帝用来保护重要军情的加密系统。(既是今天我们所说的:替代密码)它是一种置换密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。...

Global site tag (gtag.js) - Google Analytics