博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解析输入
阅读量:4049 次
发布时间:2019-05-25

本文共 1090 字,大约阅读时间需要 3 分钟。

-- Start

在JDK 5.0之前, 我们可以通过如下方式读取用户输入, 但是想从控制台读取输入还是比较费劲的.

import javax.swing.JOptionPane;public class Test {	public static void main(String[] args) throws Exception {		String name = JOptionPane.showInputDialog("What is your name?");		System.out.println(name);	}}

JDK 5.0 引入的Scanner类大大简化了读取和解析用户输入, 来看一个简单的例子.

Scanner in = new Scanner(System.in);System.out.print("What is your name? ");String name = in.nextLine();System.out.print(name);in.close();
我们知道命令行参数都是用空格来分割的, 用Scanner来解析命令行参数是非常容易的, 它直接将参数转换成具体的类型而不需要进行类型转换, 如下:

String command = "one 1 0.3 true";Scanner s = new Scanner(command);String p1 = s.next();int p2 = s.nextInt();float p3 = s.nextFloat();boolean p4 = s.nextBoolean();s.close();
Scanner类使用正则表达式来解析字符串, 所以我们完全可以定义自己的分隔符, 以下代码的输出和上面的完全相同, 只是分隔符不同.

String command = "one SHANGBO 1 SHANGBO 0.3 SHANGBO true";Scanner s = new Scanner(command).useDelimiter("\\s*SHANGBO\\s*");String p1 = s.next();int p2 = s.nextInt();float p3 = s.nextFloat();boolean p4 = s.nextBoolean();s.close();

---更多参见:

-- 声 明:转载请注明出处
-- Last Updated on 2012-06-12
-- Written by ShangBo on 2012-04-26
-- End

你可能感兴趣的文章
哈佛图书馆墙上的20条训言
查看>>
交流引发深入思考
查看>>
保持我们母语的纯洁
查看>>
免费的互联网时代如何盈利?
查看>>
可怕的宣传力量
查看>>
症状:可以上网,可以上QQ,不能登陆360安全卫士,360浏览器无法同步,有道词典等无法登陆,无法查询。
查看>>
重读《触龙说赵太后》
查看>>
2010的第一次思想触动
查看>>
文学大师做菜艺术20个"须知"
查看>>
SVN + 批处理 + Dropbox + TeamViewer实现远方协同工作
查看>>
vc学习之关于缩放到托盘区
查看>>
vc学习之键盘事件OnKeyDown
查看>>
近期工作
查看>>
春寒料峭,原来春天这样走近
查看>>
电脑坏了--关于联想笔记本声卡驱动
查看>>
C#中枚举类型在switch语句中值对照问题
查看>>
GridView中根据特殊标记设置不可编辑
查看>>
PowerDesinger中生成数据库时将域的内容转化为实际的字段
查看>>
通过模板将GridView导出为Excel
查看>>
迭代开发过程及一些原则
查看>>