【问题标题】:Java - Is it possible to store metacharacters like dot in a character variable?Java - 是否可以在字符变量中存储像点这样的元字符?
【发布时间】:2019-11-24 15:13:53
【问题描述】:

.\{^|] 等元字符可以使用 \ 字符进行转义。 但是 char 变量只能存储一个字符。那么Java中是否可以将这些特殊字符存储在char变量中呢?

也许你只需要在字符串变量中使用转义字符?

【问题讨论】:

  • "是否可以将这些特殊字符存储在 char 变量中" - 它们不是特殊字符,它们是特殊字符序列。而char 不存储序列,它只存储单个字符。
  • 你试过char c = '.';吗?
  • 我注意到,如果是 \ 字符,您应该这样做:char c = '\\'; 为什么会这样?
  • 这些字符,除了'\',只是正则表达式中的特殊字符;和正则表达式以String 给出(实际上它们不能用反斜杠转义 - 编译错误)。这里是可以/必须转义的(所有)字符列表(如charString):EscapeSequence

标签: java regex char metacharacters


【解决方案1】:

您问题中的所有字符都可以存储在 String 或 char 变量中而无需转义转义字符 \ 本身除外。如果某些作用于字符串或 char 的方法可能会混合使用普通字符和具有特殊含义的字符,则您只需将其转义即可。

String.format() 是一个很好的例子,说明你可能同时拥有两者。 如果您想将转义字符 \ 存储在单个字符中,您可以执行以下操作:

char c = '\\'

【讨论】:

    【解决方案2】:

    是的,有可能。

    char c = '.'; 
    

    只有在处理字符串而不是字符时才能转义元字符。

    【讨论】:

      【解决方案3】:

      完全可以将这些字符存储在 char 变量中。您是否使用“”引号而不是''?这是 char 的常见错误。

      【讨论】:

        猜你喜欢
        • 2020-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-24
        • 2014-08-04
        • 2014-08-01
        相关资源
        最近更新 更多