我在列表中添加了几个字符以替换字符串。他们在这里:
List<Character> list = new ArrayList<Character>();
list.add(',');
list.add('?');
list.add(',');
list.add(':');
list.add('-');
list.add('(');
list.add(')');
list.add(';');
list.add('/');
我想用字符串“s”替换列表中所有出现的字符。
s.replaceAll(list, "");
当然,我不能这样做,因为list不是字符串。但我能做些什么呢?
编辑,如果
String s = "I am cool; not good!";
我希望列表识别出它包含“;”和“!”,并在没有任何内容的情况下替换String s中的那些字符。结果将是:
"I am cool not good"
答案 0 :(得分:5)
我不会使用List<Character>
,而是使用正则表达式:
s.replaceAll("[,?:();/-]","");
如果绝对必须在List中定义字符,请先将List转换为此类正则表达式。
答案 1 :(得分:1)
而不是List为什么不使用正则表达式。否则你可能会遇到类似的问题:
StringBuilder mySB = new StringBuilder(myString);
for (Character myChar : list) {
mySB.replace(String.valueOf(myChar), "");
}
myString = mySB.toString();
答案 2 :(得分:1)
查看Apache Commons StringUtils.replaceEach((String text, String[] searchList, String[] replacementList))它将允许您在一行中提供要搜索的值列表和相关替换列表。
注意:如果搜索和替换数组的长度不同,这将抛出IndexOutOfBoundsException