java - 为什么 .split ("\\") 会产生异常?

标签 java string split

我有一个代表目录的字符串,其中 \ 用于分隔文件夹。我想根据 "\\" 拆分:

String address = "C:\\saeed\\test";
String[] splited = address.split("\\");

但是,这会给我一个 java.util.regex.PatternSyntaxException

最佳答案

正如其他人所建议的,您可以使用:

String[] separated = address.split("\\\\");

或者您可以使用:

String[] separated = address.split(Pattern.quote("\\")); 

另外,供引用:

String address = "C:\saeed\test";

不会编译,因为 \s 不是有效的转义序列。这里 \t 被解释为制表符,你真正想要的是:

String address = "C:\\saeed\\test";

所以,现在我们看到,为了在 String 中获取 \,我们需要 "\\"

正则表达式 \\ 匹配单个反斜杠,因为 \ 是正则表达式中的特殊字符,因此必须进行转义。一旦我们将其放入引号中,也就是将其转换为 String,我们需要转义每个反斜杠,生成 "\\\\"

关于java - 为什么 .split ("\\") 会产生异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18166017/

相关文章:

java - 更改 Netbeans 平台主窗口背景颜色

在 fragment 中使用 Butterknife 时出现 java.lang.NullPointerException

java - Android 64 位兼容性和 'armeabi'?

java - 为什么可以将字符添加到字符串,但不能将字符添加到字符?

ruby - 在字符串和类名之间转换

c - 使用 (char *)malloc(0) 和 NULL 初始化字符串之间的区别

python - 字典列表的字符串(python)

java - org.jgap.* 不包括所有内容

c# - 在 x 数量相同的数字后拆分字符串

java - 从文件读取时如何将一行保存到链接列表中并将下一行保存到另一个列表中