我需要學習RegEx,但現在沒有時間弄清楚這一點。 - 所以我試圖利用社區的能力。如何使用正則表達式將字符串拆分爲字符?
我有一個字符串包含可接受的1字符評論變量的列表。
String comments = "#;";
而且我想:
String[] parsedComments = {"#", ";"};
什麼正則表達式的字符串將解決我的問題呢?
String[] parsedComments = comments.split(/* "???" */);
我需要學習RegEx,但現在沒有時間弄清楚這一點。 - 所以我試圖利用社區的能力。如何使用正則表達式將字符串拆分爲字符?
我有一個字符串包含可接受的1字符評論變量的列表。
String comments = "#;";
而且我想:
String[] parsedComments = {"#", ";"};
什麼正則表達式的字符串將解決我的問題呢?
String[] parsedComments = comments.split(/* "???" */);
首先,你爲什麼需要將它們分解成一個數組?一個字符串幾乎有相同的方法可用於索引字符和幾乎相同的性能。
但是,要回答你的問題:
string.split("");
這會給你的結果數組的第一個POS額外的空字符串。
剛剛接觸使用評論[0]評論[1] ...評論[ň]
我誤會你在我原來的答覆的字符串索引。你不想要正則表達式。正則表達式用於查找模式,而您只是想分割。你可以使用一個空字符串,但是這將返回一個空字符串以及字符。
只需通過索引訪問。
這應該這樣做,其他怪異的黑客中:
String[] parsedComments = comments.split("(?!^)");
這很難說是正則表達式的工作,雖然。也可以迭代整個字符串,並從每個1個字符的子字符串中構建一個數組。
不完全 - 我得到[「」,「#」,「;」]的結果,這可以通過使用「」作爲「split」的參數來獲得。 – 2009-07-16 16:03:03
Oy。我在Perl中測試正則表達式,但它不這樣做。編輯可能會抑制空字符串。 – chaos 2009-07-16 16:08:56
「(?<!^)」本身也有效。事實上,它甚至不一定是一個倒影:「(?!^)」也適用。 – 2009-07-16 20:56:30
爲什麼你想要使用正則表達式?例如,嘗試String.toCharArray()。
我試圖添加此作爲評論「丹尼爾」和「拉撒路」,但我沒有足夠的聲望點呢......除非我誤解你,你說要訪問原始字符串使用指數。你不能用Java來做到這一點。
String foo = "abcde";
String bee = foo[1]; // not valid
如果我誤解了你,我很抱歉。如果沒有,我想澄清這一點對於後代。 :-)
不是在Java中;見cjstehno的答案。 – 2009-07-17 00:17:24
太多的語言:) – Lazarus 2009-07-21 15:05:49