如何使用正则表达式将字符串拆分为字符?

时间:2009-07-16 15:29:54

标签: java regex

我需要学习RegEx,但现在没有时间解决这个问题。 - 所以我试图利用社区的能力。

我有一个包含可接受的1个字符注释变量列表的字符串。

String comments = "#;";

我想要:

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

什么RegEx字符串将解决我的问题?

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

6 个答案:

答案 0 :(得分:12)

为什么要使用正则表达式?例如,尝试String.toCharArray()

答案 1 :(得分:5)

这应该做到这一点,以及其他奇怪的黑客:

String[] parsedComments = comments.split("(?!^)");
但是,这对于正则表达式来说并不是一项工作。也可以迭代遍历字符串并从每个1个字符的子字符串中构建一个数组。

答案 2 :(得分:4)

首先,为什么需要将它们分成数组? String几乎有完全相同的方法可用于获取索引的字符和几乎相同的性能。

但是,要回答你的问题:

string.split("");

这将在结果数组的第一个pos处为您提供一个额外的空字符串。

答案 3 :(得分:2)

我在原来的答案中误解了你。你不想要正则表达式。正则表达式用于查找模式,您只想分割。您可以使用空字符串,但这将返回一个空字符串以及字符。

只需通过索引访问。

答案 4 :(得分:2)

我试图将此作为对“Daniel”和“Lazarus”的评论添加,但我还没有足够的声望点......除非我误解你,你要说使用索引访问原始字符串。你不能用Java做到这一点。

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

如果我误解了你,我道歉。如果没有,我想为后人澄清这一点。 : - )

答案 5 :(得分:1)

只需使用评论[0],评论[1] ...评论[ n ]

访问字符串索引