我想创建一个基本的文件系统来模仿终端。我目前坚持要在命令之后获取名称。我的第一个想法是使用正则表达式来解析命令。命令解析字符串有或没有正则表达式
例子是:
mkdir hello
ls
cd hello
然而考虑到许多空格的输入可以是mkdir hello
。我想知道是否有另一种方式没有使用正则表达式?我也很好奇哪种方法更快?有或没有正则表达式?
我想创建一个基本的文件系统来模仿终端。我目前坚持要在命令之后获取名称。我的第一个想法是使用正则表达式来解析命令。命令解析字符串有或没有正则表达式
例子是:
mkdir hello
ls
cd hello
然而考虑到许多空格的输入可以是mkdir hello
。我想知道是否有另一种方式没有使用正则表达式?我也很好奇哪种方法更快?有或没有正则表达式?
你可以尝试分裂线,如
String[] tokens = line.split(" ");
而对于基本的命令,很可能是你的命令将在tokens[0]
其次参数。
for(String current: line.split("\\s+"){
//do something.
}
通常,正则表达式更快,因为您可以编译它。
看到java.util.regex - importance of Pattern.compile()?
(在内部,我认为JVM总是编译在某些时候正则表达式,但如果你这样做明确的,你可以重复使用它。我不知道如果JVM是足够聪明的重用编译正则表达式本地,也许它是)
我看到谢谢你的帮助! – Liondancer
不要忘记接受对你最有帮助的答案。谢谢! – Incognito