如何在字符串数组java中定义特殊字符

我需要定义一个包含所有特殊字符的数组。

+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ 

我正在使用这个

 List specialCharactersInSolr = Arrays.asList(new String[] { "+", "-", "&&", "||", "!", "(", ")", "{", "}", "[", "]", "^", "~", "*", "?", ":", }); 

它接受所有的字符,除了“和\

请帮助如何定义这两个。

\"是String类中的特殊字符

  • "是String的开头或结尾
  • \用于创建一些字符,如新行\n \r \t tab \t或转义特殊字符,如你的情况\"

所以为了使它们成为文字,你必须用"\\""\""来逃避它们。


其他想法是使用Character[]而不是String[]所以你不必逃避"你的角色可以写成'"''\\' (因为'需要转义 – 它应该写成'\''\在这里也很特别,还需要转义才能生成它的文字)。

用这个

 List specialCharactersInSolr = Arrays.asList(new String[]{ "+", "-", "&&", "||", "!", "(", ")", "{", "}", "[", "]", "^", "~", "*", "?", ":","\"","\\"}); 

这里"\"""\\"是为了"\