在我写的小程序中,我必须解析一行用户输入.基本上需要做的是将行拆分为一个字符串数组,就像使用main()的参数一样,即我正在寻找这样的东西:
String[] splitArgs(String cmdLine);
我只是想知道,如果主要方法的参数在调用main本身之前以这种方式解析,是不是可以调用那个而不是编写自己的?那么,有谁知道在哪里找到这种方法?
谢谢,阿克塞尔
命令行参数由shell解析; 这就是为什么*
通常会扩展到文件列表,例如.这称为"globbing",它发生在JVM甚至启动之前,在程序之外发生.
维基百科/水珠
命令行参数中*的问题
至于将字符串拆分为字符串数组,最基本的选择是String.split(String regex)
.
这是一个非常简单的例子:
String[] parts = "one two three".split(" "); for (String part : parts) { System.out.println("[" + part + "]"); }
以上打印:
[one] [two] [three]
的String
到参数split
是正则表达式.
regular-expressions.info
java.lang.regex.Pattern
Scanner
选项您可以使用的另一个选项是java.util.Scanner
.这是遗产的一个更加改进的版本StringTokenizer
.
拆分/标记/扫描一个知道引号的字符串
使用Scanner
它的例子知道简单的引号
Scanner vs. StringTokenizer vs. String.Split
使用java.util.Scanner验证输入
关于验证数字,元音等的许多例子
要获得更强大的String
拆分功能,您可以使用例如Splitter
Guava.