2

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

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

我正在使用这个

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

它接受除 " 和 \ 之外的所有字符

请帮助如何定义这两个。

4

2 回答 2

10

\并且"是 String 类中的特殊字符

  • "是字符串的开始或结束
  • \用于创建一些字符,如换行\n \r选项卡\t或转义特殊字符,如您的情况\"

因此,要使它们成为文字,您必须使用"\\"and来逃避它们"\""


另一个想法是使用Character[]而不是String[]这样您就不必转义",并且您的字符可以写为'"'or '\\'(因为'需要转义 - 它应该写为'\''-\这里也很特殊,并且还需要转义以产生其文字)。

于 2013-07-12T10:27:07.243 回答
4

用这个

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

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

于 2013-07-12T10:26:52.497 回答