好吧,你可能会说这是一个重复的帖子,但它是不同的。
我正在开发一个程序,该程序正在处理用户指定的某种删除分隔符。如果分隔符只有一个字符(特殊或非特殊),我的程序正在工作。但是,如果用户输入的是字符串,它会从消息字符串中删除分隔符的所有字符。
前任。字符串消息 = "ab\nc[d]e{fMardk1g(h)i}j"; 输出将是:bcefghij,但预期的输出是 abcdefghij
我是使用 Pattern 类的新手,所以我不知道问题出在哪里。
这是有问题的代码(我把它放在一个测试类中,所以我可以隔离问题):
导入 java.util.regex.Pattern;
public class ParsingTest {
public static void main(String[] args) {
String[] delimiters = { "Mardk1", "\n", "[", "]", "{", "}", "(", ")" };
StringBuilder regexp = new StringBuilder("");
regexp.append("[");
for(String s : delimiters) {
regexp.append("[");
regexp.append(Pattern.quote(s));
regexp.append("]");
}
regexp.append("]");
String message = "ab\nc[d]e{fMardk1g(h)i}j";
StringBuilder result = new StringBuilder("");
String[] a = message.split(regexp.toString());
for(String string : a) {
result.append(string);
}
System.out.println(result);
for(String str: a) System.out.print(str);
System.out.println();
}
}