如何替换列表中的多个项目?
我在列表中添加了几个字符以替换字符串。它们是:
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, "");
当然,我不能这样做,因为列表不是字符串。但我能做什么呢?
编辑所以如果
String s = "I am cool; not good!";
我希望列表识别它包含“;”和“!”,并将 String 中的这些字符替换为空。所以结果是:
"I am cool not good"
I have added several characters in a list to replace in a string. Here they are:
List<Character> list = new ArrayList<Character>();
list.add(',');
list.add('?');
list.add(',');
list.add(':');
list.add('-');
list.add('(');
list.add(')');
list.add(';');
list.add('/');
I want to replace all occurrences of the character in the list in a string "s".
s.replaceAll(list, "");
I can't do that, of course, because list is NOT a string. But what can I do instead?
EDIT so if
String s = "I am cool; not good!";
I want the list to recognize that it contains ";" and "!", and replace those characters in the String s with nothing. So the result would be:
"I am cool not good"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我不会使用
List
,而是使用正则表达式:如果您绝对必须在列表中定义字符,请首先将列表转换为这样的正则表达式。
Rather than use a
List<Character>
, I would use a regex:If you absolutely must define your characters in a List, convert the List to such a regex first.
为什么不使用正则表达式而不是列表。否则你可能会陷入类似的困境:
Rather than List why not use a regular expression. Otherwise you may be stuck with something like:
查看 Apache Commons StringUtils.replaceEach((字符串文本,
字符串[]搜索列表,
String[] replacementList)) 它将允许您在一行中提供要搜索的值列表以及关联的替换列表。
注意:如果搜索数组和替换数组的长度不相同,这将抛出 IndexOutOfBoundsException
check out Apache Commons StringUtils.replaceEach((String text,
String[] searchList,
String[] replacementList)) it will allow you to provide a list of values to search for and a list of associated replacements in a single line.
Note: This will throw IndexOutOfBoundsException if the lengths of the search and replacement arrays are not the same