当前位置: 首页 > wzjs >正文

建设网站需要的编程网站seo关键词排名查询

建设网站需要的编程,网站seo关键词排名查询,湖北建筑网,手机算命网站建设Scanner 是Java中一个实用的文本扫描工具类(位于 java.util 包),主要用于从输入流(如键盘、文件或字符串)中解析基本数据类型和字符串。它通过正则表达式将输入分解为标记(tokens),并…

Scanner 是Java中一个实用的文本扫描工具类(位于 java.util 包),主要用于从输入流(如键盘、文件或字符串)中解析基本数据类型和字符串。它通过正则表达式将输入分解为标记(tokens),并提供了多种方法来读取和转换这些标记。


1. Scanner的核心功能

功能说明
读取输入从键盘、文件、字符串等来源读取数据。
按类型解析自动将输入的文本转换为 intdoubleString 等类型。
分隔符控制支持自定义分隔符(默认是空白符)。
正则匹配使用正则表达式验证或跳过特定模式的输入。

2. 构造方法

Scanner 可以从多种输入源构造:

构造方法说明
Scanner(InputStream source)从标准输入流(如键盘)读取,常用 System.in
Scanner(File source)从文件中读取数据(需处理 FileNotFoundException)。
Scanner(String source)直接解析字符串内容。
Scanner(Readable source)从任何实现了 Readable 接口的对象读取。

示例

// 从键盘输入
Scanner keyboardScanner = new Scanner(System.in);// 从字符串读取
Scanner stringScanner = new Scanner("Hello 123 45.67");// 从文件读取(需异常处理)
try {Scanner fileScanner = new Scanner(new File("data.txt"));
} catch (FileNotFoundException e) {e.printStackTrace();
}

3. 常用方法

3.1 读取基本类型

方法说明示例
nextInt()读取下一个 int 类型标记。int num = scanner.nextInt();
nextDouble()读取下一个 double 类型标记。double d = scanner.nextDouble()
nextBoolean()读取下一个 boolean 类型标记。boolean b = scanner.nextBoolean()
next()读取下一个 String 类型标记(以空白符分隔)。String s = scanner.next()
nextLine()读取一行文本(包括空格,直到换行符)。String line = scanner.nextLine()

示例

Scanner scanner = new Scanner("123 45.67 true Hello");
int i = scanner.nextInt();       // 123
double d = scanner.nextDouble(); // 45.67
boolean b = scanner.nextBoolean(); // true
String s = scanner.next();       // "Hello"

3.2 检查输入类型

方法说明
hasNextInt()检查下一个标记是否为 int
hasNextDouble()检查下一个标记是否为 double
hasNext()检查是否还有下一个标记。
hasNextLine()检查是否还有下一行。

示例

Scanner scanner = new Scanner("100 ABC");
if (scanner.hasNextInt()) {int num = scanner.nextInt(); // 不会执行,因为下一个是"ABC"
}

3.3 自定义分隔符

通过 useDelimiter() 方法设置分隔符(支持正则表达式)。
示例:按逗号分割输入

Scanner scanner = new Scanner("A,B,C,D");
scanner.useDelimiter(",");
while (scanner.hasNext()) {System.out.println(scanner.next()); // 输出 A, B, C, D
}

3.4 跳过特定模式

使用 skip() 跳过匹配正则表达式的部分。
示例:跳过所有数字

Scanner scanner = new Scanner("Hello123World456");
scanner.skip("\\d+"); // 跳过"123"
System.out.println(scanner.next()); // 输出 "World456"

4. 典型应用场景

4.1 从键盘读取用户输入

Scanner scanner = new Scanner(System.in);
System.out.print("请输入姓名:");
String name = scanner.nextLine();
System.out.print("请输入年龄:");
int age = scanner.nextInt();
System.out.println(name + "的年龄是" + age);
scanner.close(); // 关闭Scanner

4.2 解析结构化文本


String data = "John,25,New York;Alice,30,London";
Scanner scanner = new Scanner(data);
scanner.useDelimiter(";|,"); // 按分号或逗号分割
while (scanner.hasNext()) {String name = scanner.next();int age = scanner.nextInt();String city = scanner.next();System.out.println(name + " (" + age + ") - " + city);
}
scanner.close();

4.3 读取文件内容

try (Scanner fileScanner = new Scanner(new File("data.txt"))) {while (fileScanner.hasNextLine()) {System.out.println(fileScanner.nextLine());}
} catch (FileNotFoundException e) {e.printStackTrace();
}

5. 注意事项

  1. 资源释放
    Scanner 使用了底层I/O资源,使用后需调用 close() 关闭(或用try-with-resources)。

  2. 输入阻塞
    从 System.in 读取时,程序会等待用户输入。

  3. 类型匹配
    若输入与预期类型不匹配(如用 nextInt() 读取非数字),会抛出 InputMismatchException

  4. 换行符问题
    nextInt() 后直接调用 nextLine() 会读取残留的换行符,需额外处理:

    int num = scanner.nextInt();
    scanner.nextLine(); // 消耗换行符
    String line = scanner.nextLine();


6. 与替代方案的对比

场景Scanner替代方案(如BufferedReader)
键盘输入简单易用,支持类型转换。需手动解析字符串(如 Integer.parseInt())。
文件读取逐行或按标记解析方便。性能更高(适合大文件)。
正则支持内置正则分割和跳过功能。需自行实现正则匹配。

7. 总结

  • 核心用途:解析键盘输入、文件内容或字符串,支持按类型读取。

  • 关键方法

    • 读取:nextInt()nextLine()next()

    • 检查:hasNextInt()hasNextLine()

    • 控制:useDelimiter()skip()

  • 最佳实践

    • 始终关闭 Scanner(用 try-with-resources)。

    • 处理类型不匹配异常(InputMismatchException)。

    • 复杂场景可结合正则表达式。

http://www.dtcms.com/wzjs/409987.html

相关文章:

  • 个人网站 备案 攻略扬州网站seo
  • 什么做的网站推广营销渠道策略
  • 介绍自己做的电影网站公司怎么推广网络营销
  • 广东省企网站建设seo排名点击 seo查询
  • 电子商务网站建设教程试卷百度竞价托管外包代运营
  • 网站建设报价网站建设报价单博客可以做seo吗
  • oa网站模板市场调研怎么写
  • 高端网络推广seo二级目录
  • 佛冈县住房和城乡建设局网站营销传播
  • 在什么网站上做兼职靠谱总排行榜总点击榜总收藏榜
  • 专注江苏网站建设锦州网站seo
  • 网站酷站谷歌google搜索引擎入口
  • 济南网站推广效果厦门网站制作全程服务
  • 网站建设工作量统计表今日重大军事新闻
  • 南京网站建设工作室能打开各种网站的浏览器下载
  • 顺德龙江网站建设天津优化公司哪家好
  • 无锡网站制作的公司有哪些sem全称
  • 济南商城网站开发google怎么推广
  • 秦皇岛做网站的公司选汉狮太原网站建设开发
  • 帝国做的电影网站活动软文怎么写
  • 做域名代理网站网站的建设流程
  • php做动漫网站怎么在广告联盟接广告
  • linux wordpress 域名杭州优化seo公司
  • 地方门户网站盈利模式杭州网站优化
  • wordpress 手机验证码seo手机端排名软件
  • 买了域名之后如何做网站河北seo网络推广
  • 网站 开发 合同宁波seo公司排名榜
  • 济南做网站费用网址提交
  • 广德做网站设计开发seo免费
  • 衡阳企业网站建设价格seocms