Java和字符串分割

4

使用split函数来分割这个字符串。以下是我的代码:

String data= "data^data";
String[] spli = data.split("^");

当我尝试在spli中只包含一个字符串时进行操作,似乎Java看不到"^"来分割。有人知道如何按字母"^"拆分此字符串吗?

编辑

已解决:P


使用SO时,您需要通过点击答案旁边的标记来标记真正回答了您问题的答案。 - jmj
Jigar,这是建议但不是必须的。 - Joey
5个回答

7
这是因为String.split使用的是正则表达式而不是字面字符串。你需要转义^,因为它在正则表达式中具有不同的含义(用于匹配字符串开头)。因此,在第一个字符之前实际上会进行分割,导致你完整的字符串未被改变地返回。
你可以使用\转义正则表达式元字符,在Java字符串中必须使用\\
data.split("\\^")

应该可以工作。


3

你需要转义它,因为它使用正则表达式

\\^

3

需要转义特殊字符如^,使用\


3
实际上使用“\”来转义,因为Java语言的限制。 - AlanFoster

2

这不起作用是因为.split()期望它的参数是一个正则表达式。"^"在正则表达式中有特殊含义,所以不能按照你的期望工作。为了让它工作,你需要对其进行转义。使用\\^


2
原因是split的参数是一个正则表达式,所以“^”表示行的开头。因此,你需要转义为ASCII-^:使用参数"\\^"。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接