从List <String> java替换或删除特殊字符

时间:2019-07-03 01:32:00

标签: java java-8

从列表Java中替换或删除特殊字符

List<String> somestring = ['%french', 
                           '@spanish', 
                           '!latin'];

如何删除特殊字符并将其替换为空格。

List<String> somestring = ['%french', 
                           '@spanish', 
                           '!latin'];
somestring.replaceall('%','');

如何获得结果

List<String> somestring = ['french', 
                           'spanish', 
                           'latin'];

2 个答案:

答案 0 :(得分:1)

首先,从不使用原始的List。您有一个List<String>。其次,String文字(在Java中)用双引号(")而不是单引号引起来。第三,您可以流式传输List<String>并使用正则表达式映射元素,然后将它们收集回原始List<String>。喜欢,

List<String> somestring = Arrays.asList("%french", "@spanish", "!latin");
somestring = somestring.stream().map(s -> s.replaceAll("\\W", ""))
        .collect(Collectors.toList());
System.out.println(somestring);

输出(按要求)

[french, spanish, latin]

答案 1 :(得分:0)

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexMatches {
   private static String REGEX = "\\!|\\%|\\@"; //control on Special characters...
   private static String INPUT = "The %dog% says !meow. " + "!All @dogs @say meow.";
   private static String REPLACE = ""; //Replacement string

   public static void main(String[] args) {
      Pattern p = Pattern.compile(REGEX);
      //get a matcher object
      Matcher m = p.matcher(INPUT);
      INPUT = m.replaceAll(REPLACE);
      System.out.println(INPUT);
   }
}

添加了一个示例片段来解释相同内容,请相应地扩展到集合。