我需要帮助为多个角色制作分隔符
我需要一个String分隔符 这些人物
()“;:,?!。
我试过了:
private String delimiter = "()\":;,?!.";
private String delimiter = "[()\":;,?!.]";
private String delimiter = "\\(\\)\"\\:\\;\\,\\?\\!\\.";
似乎我只能让它们一次工作一个.. 非常感谢任何见解。
如果重要的是这是它进入阵列的方式:
foo = line.split(delim);
答案 0 :(得分:3)
如果您要拆分这些字符中的任何,您可以使用alternation:|
分隔每个字符。否则,只有当所有这些字符存在时才会拆分字符串。
String delimiter = "\\(|\\)|\"|\\:|\\;|\\,|\\?|\\!|\\.";
此外,您不必要地转义了几个字符,这也有效:
String delimiter = "\\(|\\)|\"|:|;|,|\\?|!|\\.";
答案 1 :(得分:3)
几乎与nr。 3
@Test
public void delim() {
String delimiter = "[\\(\\)\"\\:\\;\\,\\?\\!\\.]";
String[] split = "Hello(World)How:are;You;doing,today?You!sir.I mean"
.split(delimiter);
System.out.println(Arrays.toString(split));
}
<强>输出强>
[Hello, World, How, are, You, doing, today, You, sir, I mean]
你错过了方括号。
为避免所有引用,您可以使用Pattern#quote
String delimiter = "[" + Pattern.quote("()\":;,?!.") + "]";
返回指定String的文字模式String。 此方法生成一个String,该String可用于创建与字符串s匹配的Pattern,就好像它是文字模式一样。 输入序列中的元字符或转义序列没有特殊含义。
答案 2 :(得分:2)
|
:
delimiter = "\\(|\\)|\"|:|;|,|\\?|!|\\."