2009-07-16 65 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 

如果我误解了你,我很抱歉。如果没有,我想澄清这一点对于后代。 :-)

相关问题