-- 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();
---更多参见:Java 精萃
-- 声 明:转载请注明出处
-- Last Updated on 2012-06-12
-- Written by ShangBo on 2012-04-26
-- End