在Java中,我试图分割^
这个字符,但它没有识别它。转义\^
引发代码错误。Java拆分^(插入符号?)不起作用,这是一个特殊字符吗?
这是一个特殊字符还是我需要做别的事情才能让它识别它?
String splitChr = "^";
String[] fmgStrng = aryToSplit.split(splitChr);
在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]);
它应打印“字词1,单词2”,有效利用分裂的"\\^"
字符串。第一个斜线用于逃避第二个斜线。如果没有双斜杠,Java会认为^是转义字符,就像换行符"\n"
thx @Basilio德语欣赏代码示例,希望我能给出两个正确的答案 –
以上都不是没有意义的。这是正确的解释。
请让我知道这个解释有帮助。如果有任何错误,请联系错别字。
感谢 -karuna
更正==>像这样String splitstr =“\\ ^” – Karuna
而不是评论,编辑您的答案,而不是 – LittleBobbyTables
String[] fmgStrng = aryToSplit.split("\\\^");
尼斯 - +1从我这里。 – duffymo
宾果!清楚的解释,thx @birryree –