我想創建一個基本的文件系統來模仿終端。我目前堅持要在命令之後獲取名稱。我的第一個想法是使用正則表達式來解析命令。命令解析字符串有或沒有正則表達式
例子是:
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