【问题标题】:How to define special characters in string array java如何在字符串数组java中定义特殊字符
【发布时间】:2013-07-12 10:24:07
【问题描述】:

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

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

我正在使用这个

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

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

请帮助如何定义这两个。

【问题讨论】:

  • 用反斜杠转义它们!为什么不使用Character 而不是String
  • 正是我要输入的内容!
  • 分别使用"\"""\\"。但是你说你想在这里使用字符并定义字符串?
  • @jlordo。可能是因为他还需要存储-&amp;&amp;||
  • 在 Java 5+ 中,您不需要 new String[] { ... }

标签: java arrays arraylist


【解决方案1】:

\"是String类中的特殊字符

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

因此,要使它们成为文字,您必须使用 "\\""\"" 转义它们


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

【讨论】:

  • 然后转义反斜杠。
  • @RohitJain 这不是正则表达式。双反斜杠是你如何写一个反斜杠
  • @RohitJain 你错了,这会很好用。你自己试试
  • @Bohemian。啊!正确的。将其与正则表达式混合。对不起。它会正常工作的。
  • @TanuGarg 很高兴它对你有用。由于您不是那么活跃的 SO 用户,您可能不了解 accepting answer 机制。您可能应该阅读它。
【解决方案2】:

使用这个

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

这里"\"""\\" 用于"\

【讨论】:

  • 行不通。您还需要转义反斜杠。这必须在 Java 中完成。
  • @RohitJain 错误。上面的代码很好。您可能正在考虑如何在正则表达式中编写文字反斜杠
猜你喜欢
  • 1970-01-01
  • 2019-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多