Хорошо, вы можете сказать, что это повторяющийся пост, но он другой.
Я работаю над программой, которая работает над удалением разделителей, указанных пользователем. Моя программа работает, если разделитель только один символ (специальный или нет). Однако, если пользовательский ввод является строкой, он удаляет все символы разделителя из строки сообщения.
ех. String message = "ab \ nc [d] e {fMardk1g (h) i} j";
вывод будет: bcefghij
но ожидаемый результат abcdefghij
Я новичок в использовании класса Pattern, поэтому не знаю, в чем проблема.
Вот код, о котором идет речь (я поместил его в класс тестирования, чтобы я мог изолировать проблему):
import 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();
}
}