关于Scanner一些用法
来源:互联网 发布:mac安装iphone应用 编辑:程序博客网 时间:2024/05/16 17:21
以前上课接触过Java Scanner 还做了个文法分析器,刚刚碰巧看了《Thinking in Java》关于Scanner用法,总觉得很陌生。比如说nextInt()方法是返回当前分词的int ,如果当前分词判断并非为int,那么就会报java.util.InputMismatchException。而Scanner对分词进行判断是挨个来的,Scanner的默认分词符是空字符,
假设要找出字符串s中的int类型,代码如下:
String s = "12 ab 34"; Scanner sc = new Scanner(s); int mInt = 0; while (sc.hasNextInt()) { mInt = sc.nextInt(); System.out.println("mInt: " + mInt); } }
结果是:
mInt: 12
后面的34不会出现,原因是分词为ab的时候就退出循环了。
要得到结果:
mInt: 12
mInt: 34
把代码改为如下: 用hasNext()过滤每一个分词
String s = "12 ab 34"; Scanner sc = new Scanner(s); int mInt = 0; while (sc.hasNext()) { if (sc.hasNextInt()) { mInt = sc.nextInt(); System.out.println("mInt: " + mInt); } } }
一道习题:
编写一个包含int、long、float、String属性的类,编写一个构造器,接受一个String参数。然后扫描该字符串,为各个属性赋值。
代码如下:
package pattern;import java.util.Scanner;public class TestScanner { private int mInt; private long mLong; private float mFloat; private String mString; public TestScanner(String s) { Scanner scanner = new Scanner(s); while (scanner.hasNext()) { if (scanner.hasNextInt()) { mInt = scanner.nextInt(); } else if (scanner.hasNextLong()) { mLong = scanner.nextLong(); } else if (scanner.hasNextFloat()) { mFloat = scanner.nextFloat(); } else if (scanner.hasNext()) { mString = scanner.next(); } } } @Override public String toString() { // TODO Auto-generated method stub return "MyAttr are: " + "mInt: " + mInt + " mLong: " + mLong + " mFloat: " + mFloat + " mString: " + mString; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(new TestScanner("0.1 899798798 khkjshf 82") .toString()); }}
- 关于Scanner一些用法
- scanner 用法
- Scanner用法
- Scanner用法
- Scanner用法
- 关于Scanner类的用法----用Scanner接收两个数和一个符号完成相应运算
- 关于SqlDataReader一些用法
- 关于getDeclaredMethod一些用法
- 关于一些SharedPreference用法
- 关于PopupWindow一些用法
- Scanner 类 useDelimiter("")用法
- Scanner类用法
- Scanner 类的用法
- Java Scanner的用法
- Scanner的用法误区
- Scanner的用法
- Scanner典型用法
- Java Scanner的用法
- java IO(File类、字节流与字符流、字节字符转换流)
- ASP.NET 日期控件
- 在Myeclipse 8.6下搭建Android开发平台
- 个性主页推广
- #param comment宏的使用
- 关于Scanner一些用法
- c语言第一季
- hdu 2809 God of War //状态压缩DP
- 模拟七段数码管输出
- 一个更强大的高精度
- Hibernate 中的联合主键
- PE编程汇总
- 给虚拟机扩展空间
- C++中的预处理指示和宏