java - 从终端输入转义反斜杠
问题描述
我的程序从终端获取参数,最后一个参数是 csv 文件的路径。我的问题是反斜杠总是在它进入我的主课时被删除。
如何让用户输入 windows 类型的文件路径并在输入我的 main 方法时有反斜杠?
我试图查看反斜杠是否像这样的字符:
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("\\", "\\\\"));
第一次尝试没有打印找到的反斜杠,第二次尝试只打印了不包括任何反斜杠的路径。
解决方案
反斜杠很可能已经被命令外壳删除,因为它们也将其用作转义字符。检查传递的值,很可能反斜杠后面的值也丢失了。
调用程序时必须转义反斜杠,例如:
java -cp myjar com.example.MyApp "param 1" "param 2" "path\\to\\example\\file.txt"
或者,使用正斜杠传递路径。Java 在 Windows 系统上也支持这些。
推荐阅读
- python - 如何从 Ansible 操作插件返回差异数据
- postgresql - 以静默模式卸载 Postgresql
- c# - 模态屏幕发布结果此模态屏幕
- php - 使用 dropzone 和 codeigniter 上传多个文件
- react-native - 从滚动视图底部重新加载内容时,滚动视图刷新控件不可见
- c# - 如何从 Json 中删除嵌套属性
- sql - 如何将嵌套的 json 键/值对展平为单个值数组?
- tensorflow - 如何在 Keras 的 ConvLSTM2D() 层中禁用窥视孔连接?
- java - 用于匹配特殊模式的正则表达式
- javascript - 如何在href中添加半链接?