我需要学习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