我可能只是错了,但我已经使用了String.split(String)很长一段时间了,我从来没有遇到过这个问题,基本上我试图将一个字符串拆分一段时间,并将其返回到名为breadcrumbs
当前代码:
String[] breadcrumbs = file.toString()
.replaceAll(".java", "")
.replaceAll("\\\\", ".")
.split(".");
System.out.println("Length: " + breadcrumbs.length);
长度返回零,
现在,如果我关闭.split(“。”)并使面包屑成为常规字符串,就像这样:
String breadcrumbs = file.toString()
.replaceAll(".java", "")
.replaceAll("\\\\", ".");
System.out.println(breadcrumbs);
它打印出一个非常好的目录,使用句点(我想要),这是输出:
C:.Users.Jellal.Desktop.Java Workspace.ogserver-framework.src.test.com.chris.server.user.Account
所以,正如你所看到的那样,我们有一个非常好的字符串可以使用,考虑到这个工作,并且我首先发布的“单行”代码没有,我在它被分开的时候尝试过,像这样:
String fileDir = file.toString()
.replaceAll(".java", "")
.replaceAll("\\\\", ".");
String[] breadcrumbs = fileDir.split(".");
System.out.println(fileDir);
System.out.println(breadcrumbs.length);
这会生成以下输出:
C:.Users.Jellal.Desktop.Java Workspace.ogserver-framework.target.test-classes.com.chris.server.user.Account.class
0
不完全确定这里发生了什么,但似乎已经破裂了。
答案 0 :(得分:2)
split
的参数是正则表达式。您需要split("\\.")
。
https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#split-java.lang.String-