String.split()无法正常运行,或者......根本没有?

时间:2014-11-28 04:08:20

标签: java string

我可能只是错了,但我已经使用了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

不完全确定这里发生了什么,但似乎已经破裂了。

1 个答案:

答案 0 :(得分:2)

split的参数是正则表达式。您需要split("\\.")

https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#split-java.lang.String-