String utils split - linux



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

filepath = "eurofootballfrancewinners.txt";
String[] values = StringUtils.split(filePath, "\");
if (values != null && values.length >= 4) {
} else {
//error
}

但是在linux中执行代码时面临问题。如果循环未执行,则else循环正在执行。

对于linux ,我们需要将拆分为"\"或"/"吗

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

任何建议都将有助于

如果文件在JVM运行的机器上,则可以使用File.separatorChar获取本地机器的系统相关分隔符。

String[] values = StringUtils.split(filePath, File.separator);

JavaDoc说(File.separatorChar(:

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

为了避免这种情况,我将使用简单的正则表达式[/\],它将与/分离,如下所示:

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]

相关内容

  • 没有找到相关文章

最新更新