わかりました。これは重複した投稿だと言うかもしれませんが、違います。
私は、ユーザーが指定したある種の区切り文字の削除に取り組んでいるプログラムに取り組んでいます。区切り文字が1文字(特殊かどうか)のみの場合、私のプログラムは機能しています。ただし、ユーザー入力が文字列の場合は、メッセージ文字列から区切り文字のすべての文字が削除されます。
元。文字列メッセージ="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();
}
}