2009-07-16 64 views
2

我需要學習RegEx,但現在沒有時間弄清楚這一點。 - 所以我試圖利用社區的能力。如何使用正則表達式將字符串拆分爲字符?

我有一個字符串包含可接受的1字符評論變量的列表。

String comments = "#;"; 

而且我想:

String[] parsedComments = {"#", ";"}; 

什麼正則表達式的字符串將解決我的問題呢?

String[] parsedComments = comments.split(/* "???" */); 

回答

4

首先,你爲什麼需要將它們分解成一個數組?一個字符串幾乎有相同的方法可用於索引字符和幾乎相同的性能。

但是,要回答你的問題:

string.split(""); 

這會給你的結果數組的第一個POS額外的空字符串。

1

剛剛接觸使用評論[0]評論[1] ...評論[ň]

+1

不是在Java中;見cjstehno的答案。 – 2009-07-17 00:17:24

+0

太多的語言:) – Lazarus 2009-07-21 15:05:49

2

我誤會你在我原來的答覆的字符串索引。你不想要正則表達式。正則表達式用於查找模式,而您只是想分割。你可以使用一個空字符串,但是這將返回一個空字符串以及字符。

只需通過索引訪問。

4

這應該這樣做,其他怪異的黑客中:

String[] parsedComments = comments.split("(?!^)"); 

這很難說是正則表達式的工作,雖然。也可以迭代整個字符串,並從每個1個字符的子字符串中構建一個數組。

+0

不完全 - 我得到[「」,「#」,「;」]的結果,這可以通過使用「」作爲「split」的參數來獲得。 – 2009-07-16 16:03:03

+0

Oy。我在Perl中測試正則表達式,但它不這樣做。編輯可能會抑制空字符串。 – chaos 2009-07-16 16:08:56

+1

「(?<!^)」本身也有效。事實上,它甚至不一定是一個倒影:「(?!^)」也適用。 – 2009-07-16 20:56:30

2

我試圖添加此作爲評論「丹尼爾」和「拉撒路」,但我沒有足夠的聲望點呢......除非我誤解你,你說要訪問原始字符串使用指數。你不能用Java來做到這一點。

String foo = "abcde"; 
String bee = foo[1]; // not valid 

如果我誤解了你,我很抱歉。如果沒有,我想澄清這一點對於後代。 :-)

相關問題