以下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
}
任何建议都会有所帮助
答案 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]