字符串工具拆分-Linux

时间:2018-07-18 10:01:47

标签: java string split string-utils

以下Java代码可在Windows计算机中使用

POST http://localhost:65000/api/v1/scripts/3d9e77b0-e538-49b8-8790-60301ca79e1d/script_word_export/
Authorization: JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiMWVkMGEwZDgtMmFiYi00MDFkLTk5NTYtMTQ5MzcxNDIwMGUzIiwidXNlcm5hbWUiOiJsc2R2aW5jZW50IiwiZXhwIjoxNTMxOTAyOTU0LCJlbWFpbCI6InZpbmNlbnQuY2hlbkBuYXR1cmxpbmcuY29tIn0.wheM7Fmv8y8ysz0pp-yUHFqfk-IQ5a8n_8OplbYkj7s

但是在执行代码时面临Linux中的问题。如果没有执行循环,则正在执行else循环。

对于Linux,我们是否需要将split设置为“ \”或“ /”

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

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

} else {
    //error
}

任何建议都会有所帮助

2 个答案:

答案 0 :(得分:2)

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

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

JavaDoc说(File.separatorChar):

  

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

答案 1 :(得分:1)

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

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]