Java拆分^(插入?)不工作,这是一个特殊字符吗?

在Java中,我试图拆分^字符,但它无法识别它。 转义\^抛出代码错误。

这是一个特殊的角色还是我需要做一些其他事情来让它识别出来?

 String splitChr = "^"; String[] fmgStrng = aryToSplit.split(splitChr); 

^是Java正则表达式中的特殊字符 – 它意味着“匹配输入的开头”。

你需要用"\\^"来逃避它。 需要使用双斜杠来转义\ ,否则Java的编译器会认为你试图在字符串中使用特殊的\^序列,类似于换行符的\n

\^虽然不是特殊的转义序列,但是你会遇到编译器错误。

简而言之,使用"\\^"

^匹配字符串的开头。 你需要转义它,但在这种情况下你需要转义它,以便正则表达式解析器理解逃避转义的方法,所以:

 String splitChr = "\\^"; ... 

应该得到你想要的。

String.split()接受正则表达式。 ^符号是表示输入序列开头的特殊符号。 你需要逃避它才能使它工作。 你试图用\来逃避它是正确的,但它是一个特殊的角色来逃避Java字符串中的东西,所以你需要用另一个\来逃避转义字符。 它会给你:

 \\^ 

使用"\\^" 。 使用此示例作为指南:

  String aryToSplit = "word1^word2"; String splitChr = "\\^"; String[] fmgStrng = aryToSplit.split(splitChr); System.out.println(fmgStrng[0]+","+fmgStrng[1]); 

它应该打印“word1,word2”,使用"\\^"有效地分割字符串。 第一个斜杠用于逃避第二个斜杠。 如果没有双斜杠,Java会认为^是一个转义字符,就像换行符"\n"

上述答案都没有意义。 这是正确的解释。

  1. 众所周知,^不需要在Java String中进行转义。
  2. 因为^是RegulalExpression中的特殊charectar,所以它希望你传入\ ^
  3. 我们如何在java中创建字符串\ ^? 像这样String splitstr =“\ ^”

请让我知道这个解释有帮助。 如果有的话,请承担错别字。

谢谢-karuna

 String[] fmgStrng = aryToSplit.split("\\\^");