java - 从终端输入中转义反斜杠

标签 java escaping command-line-interface

我的程序从终端获取参数,最后一个参数是 csv 文件的路径。我的问题是,当它进入我的主类时,反斜杠总是被删除。

如何让用户输入 Windows 类型的文件路径,并在输入主方法时使用反斜杠?

我试图看看反斜杠是否作为一个字符存在,如下所示:

for (int num = 0; num < args[2].length(); num ++) {
            char c = args[2].charAt(num);
            if (c == '\\') {
                System.out.println("backslash found");
            }
        }

但它就是不存在。

我也尝试过这样:

System.out.println(args[2].replace("\\", "\\\\"));

第一次尝试没有打印找到的反斜杠,第二次尝试只是打印了不包括任何反斜杠的路径。

最佳答案

反斜杠很可能已经被命令 shell 删除,因为它们也使用它作为转义字符。检查传递的值,很可能反斜杠后面的值也丢失了。

调用程序时必须转义反斜杠,例如像这样:

java -cp myjar com.example.MyApp "param 1" "param 2" "path\\to\\example\\file.txt"

或者,使用正斜杠传递路径。 Java 在 Windows 系统上也支持这些。

关于java - 从终端输入中转义反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56705922/

相关文章:

java - 如何从另一个方法的返回方法中获取参数的值?

ssh - 如何通过 ssh 命令转义 sed 中的 $?

asp-classic - ASP 经典 - JScript : How to escape a single quote (') in a string

c++ - 使用 numericupdown 控制图像的亮度

node.js - 显示最近发布的 npm 包版本,包括 beta 版本

java - 如何使用 Hibernate 条件调用 oracle 函数?

java - 非 Activity 类通知不起作用

java - 关闭窗口 - 但不要停止程序 - JAVA

escaping - 如何让XML在logback的HTMLLayout中转义?

git - 如何使用 cli 获取当前分支的 Github 最新提交 url