Java String-utils-split-linux

Java String-utils-split-linux,java,string,split,string-utils,Java,String,Split,String Utils,下面的Java代码在Windows机器中工作 filepath = "euro\football\france\winners.txt"; String[] values = StringUtils.split(filePath, "\\"); if (values != null && values.length >= 4) { } else { //error } 但在linux中执行代码时遇到问题。若循环未执行,则else循环正在执行 对于linux,我

下面的Java代码在Windows机器中工作

filepath = "euro\football\france\winners.txt";
String[] values = StringUtils.split(filePath, "\\");

if (values != null && values.length >= 4) {

} else {
    //error
}
但在linux中执行代码时遇到问题。若循环未执行,则else循环正在执行

对于linux,我们需要将split指定为“\”或“/”吗

String[] values = StringUtils.split(filePath, "\\");

任何建议都有助于避免我使用简单的正则表达式
[/\\]
,它将与
/
\
分开,如下所示:

String[] filePaths = {
        "euro/football/france/winners.txt",   //linux path
        "euro\\football\\france\\winners.txt" //windows path
};
for (String filePath : filePaths) {
    String[] values = filePath.split("[/\\\\]");
    System.out.println(Arrays.toString(values));
}
输出

[euro, football, france, winners.txt]
[euro, football, france, winners.txt]

如果文件位于JVM正在运行的计算机上,则可以使用
file.separatorChar
获取本地计算机的系统相关分隔符

    String[] values = StringUtils.split(filePath, File.separator);
上面写着(
File.separatorChar
):

依赖于系统的默认名称分隔符。这个领域是 初始化为包含系统值的第一个字符 属性文件.separator。在UNIX系统上,此字段的值为 '/'; 在Microsoft Windows系统上,它是“\”


linux路径中的目录由正斜杠分隔,而不是反斜杠。感谢您的回复。文件路径是动态的-从带有“\”的标题获取。filePath.split(“[/\]”);希望对你有用both@Jessie当你测试它时,请让我知道