非法转义字符后跟空格

2024-01-09

我正在编写一些代码来使用在终端中加载和运行文件的进程来运行 shell 脚本。我遇到的问题是由于空格而导致终端识别文件名,例如:

"$ ./run_file.sh foo bar.ss" 

应该在终端中运行

"$ ./run_file.sh foo\ bar.ss"

这是更改它的代码,替换它:

JPanel panel1 = new JPanel();
JButton button = new JButton("Run");
button.setAlignmentX( Component.CENTER_ALIGNMENT);

button.addActionListener(new ActionListener(){

    public void actionPerformed(ActionEvent event){

        run();

    }

});
//button.setAlignmentX(0.5);
panel1.add(button);
panel1.add(Box.createVerticalGlue());
panel1.add(button);

menuB = new JMenuBar();

JMenu dropD = new JMenu("File");
menuB.add(dropD);

JMenuItem loadR = new JMenuItem("Load file");
JMenuItem quit = new JMenuItem("Quit");
dropD.add(loadR);
dropD.add(quit);
loadR.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent event) {
            JFileChooser fileopen = new JFileChooser();

            int r= fileopen.showDialog(panel, "Load file");

            if (r == JFileChooser.APPROVE_OPTION) {
                File file = fileopen.getSelectedFile();
                String string = file.toString();
                string = string.replaceAll(" ", "\ ");
                //String output = aa.replaceAll("/",Character.toString(File.separatorChar));
                System.out.println(string);
                loadFile = file;
        }

       }
  });

我尝试过使用 String.replaceAll 但得到

java:66: illegal escape character

我意识到我可以使用 File.separatorChar :

string = string.replaceAll(" ", Character.toString(File.separatorChar)+" ");

但这似乎并不能取代任何东西...... 任何帮助将非常感激。

Thanks


如果你想把\字符串中的字符(即转义字符),您需要对其进行转义:

string = string.replaceAll (" ", "\\ ");

单个\是转义序列前导字符,例如\n(换行符)或\r(回车)。单字符转义的完整列表是:

\b    backspace
\t    tab
\n    linefeed (newline)
\f    form feed
\r    carriage return
\"    double quote
\'    single quote
\\    backslash

这是八进制转义序列的补充,例如\0, \12 or \377.

你的原因separatorChar解决方案不起作用是因为这给了你分隔器 char (/在 UNIX 及其同类下),而不是转义字符\你需要的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

非法转义字符后跟空格 的相关文章

  • 具有“繁忙”线程的 threadPoolExecutor 如何被终止?

    我的问题有点复杂 让我尝试彻底解释一下 但如果您需要更多详细信息 请随时询问我 我会添加它们 我最近 通过实验 了解到 如果线程连续工作 例如 while true 循环中的整数运算 则中断线程对其没有影响 话题继续进行 就像什么都没发生一
  • 在 Postgres 中为特定查询设置 work_mem

    我正在使用一个委托给 JDBC 驱动程序的库PostgreSQL 而且有些查询非常复杂 需要更多内存 我不想设置work mem对于所有查询来说都是大的 只是这个子集 问题是执行以下代码会导致错误 pseudo code for what
  • 继续使用 sketch.js 编辑草图图像 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在使用 sketch js 中的示例 http intridea github io sketch js http intridea g
  • Powermockito 可以在非最终具体类中模拟最终方法吗?

    假设我有一个非最终具体类 具有如下所示的最终方法 public class ABC public final String myMethod return test test 可以嘲笑吗myMethod 调用时返回其他内容junit usi
  • CXF 客户端异常:{XXX} 的拦截器已引发异常,现在展开

    我遇到以下 CXF 异常 warning Interceptor for http example com wsdl esc 2011 12 12 AmazonEC2 http example com wsdl esc 2011 12 12
  • 通过代理从java发送电子邮件

    我使用 Java Mail API 来发送和接收电子邮件 现在我做这个项目的地方有一个代理服务器 我可以知道如何通过代理服务器从java发送电子邮件吗 请参阅此处的常见问题解答 http www oracle com technetwork
  • 如何使用 hibernate 过滤器过滤 hibernate 中的实体

    我需要过滤对象列表中的实体 例如 public class Student private int id private List
  • 使用Keycloak保护Tomcat应用程序时出现HTTP 403禁止错误

    我为这个错误苦苦挣扎了一整天 我一遍又一遍地检查我在tomcat中Keycloak和APP的配置 没有发现错误 下图为测试场景 APP配置 1 Keycloak json是从Keycloak控制台复制的 2 context xml 也正确
  • Java 将 String[] 转换为 int[]

    我有一个 String 其中每个元素都可以转换为整数 将其转换为 int 的最佳方法是什么 int StringArrayToIntArray String s public static int StringArrToIntArr Str
  • 检查 jar 是否从 shell 运行

    我有一个 java jar 程序 我试图在我的机器启动时运行它 理想情况下 shell 脚本将每 60 秒检查一次以确保 jar 正在运行 我如何检查 jar 是否在 centos 上运行 这似乎不起作用 我当前的 sh 文件 bin ba
  • 测试正确的时区处理

    我们正在处理大量数据 所有数据均以 UTC Java 语言 标记 在读取这些数据 将其存储在数据库中以及再次将其取出之间 发生了一些数据在夏令时期间关闭一小时的情况 由于 UTC 没有夏令时的概念 这显然是软件中的一个错误 一旦知道 就很容
  • spring-hibernate 花费更多时间的任何原因?

    目前 我正在春季和冬眠期间从事一个项目 我来到这里 获取记录并在 JSP 中显示这些记录需要更多时间 我在各处都保留了时间戳 以查看哪里花费了更多时间 Time HomeController start 2014 07 09 18 58 5
  • 如果使用 Maven,是否应该忽略 VCS 中 Eclipse 特定的文件?

    我知道为什么不将 Eclipse IDE 特定的文件提交到像 Git 我实际上正在使用的 这样的 VCS 中 这就是我使用 Maven 并让它为您生成这些文件的原因之一not将它们置于版本控制之下 但我想知道 是否应该在 gitignore
  • 无法读取使用 DataOutputStream 发送的号码

    这是我的客户端代码 Random rand new Random int n rand nextInt 50 1 DataInputStream dis new DataInputStream socket getInputStream D
  • 当列表中不存在 X 时,从列表中查找大于 X 的值

    我试图从列表中查找大于特定值 在我的情况下已知 的值 Example Given list 1 2 5 10 15 list is sorted 查找大于的值X 7在这种情况下 期望的结果 返回一个包含值的列表 10 15 我尝试使用jav
  • 为什么我得到:没有有效的 JFX 运行时

    我有一个使用 java 1 6 编译并使用 jnlp webstart 运行的现有应用程序 如果我使用 JRE 1 6 从客户端运行此应用程序 一切都会很好 但是 当我使用 java JDK 7 编译代码并使用 JRE 1 7 67 运行客
  • SQL准备语句如何通过多个可能的菜单选择进行选择?

    所以我有 4 个菜单选择 产品 位置 课程类型和类别 所有这些都可以为空 使用 JSF 编程 但这应该与这个问题无关 因为它是一个 SQL 问题 菜单选择将向托管 bean 发送用户选择的变量 并使用准备好的语句使用用户选择的菜单中的信息
  • JavaScript - 替换 html 字符串中的特定单词索引

    我在 JS 字符串操作方面面临着一项具有挑战性的任务 有一个 HTML 字符串 我需要在其中替换特定单词索引处的单词 单词索引是忽略 HTML 标签时单词的编号 例如 下面是 HTML 字符串 span style font family
  • 尝试 Catch 性能 Java

    当捕获异常而不是进行检查时 try catch 需要多长时间 以纳秒为单位 假设消息具有用于查找的 HashMap 类型性能 try timestamp message getLongField MessageField TIMESTAMP
  • 这种说法是否恰当。 if (0 != 表达式或变量) {} 在java中? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • 如何将支持库小吃栏文本颜色设置为 android:textColor 以外的颜色?

    因此 我开始在设计支持库中使用新的 Snackbar 但我发现当您在主题中定义 android textColor 时 它会应用于 Snackbar 的文本颜色 如果您的主要文本颜色是深色 这显然是一个问题 有谁知道解决这个问题的方法或者对
  • 带有 ngmodel 的 Angular 2 动态表单示例导致“表达式在检查后已更改”

    我正在寻找使用这个example https angular io docs ts latest cookbook dynamic form htmlAngular 文档中提供了与 ngmodel 结合使用动态表单的功能 以便动态表单控件可
  • 路由器 waitOn 在每次渲染时等待订阅

    我有一条路线waitOn返回一个钩子Meteor subscribe 每次触发路线时 我都会看到我的旋转器loadingTemplate在查看实际数据之前先简单介绍一下 我本以为我只需要等待订阅下载一次 即第一次 如果我做错了 请提出更好的
  • 如何使用 Files.lines(...).forEach(...) 读取文件?

    我目前正在尝试从我拥有的纯文本文件中读取行 我在另一个 stackoverflow 上发现 用Java读取纯文本文件 https stackoverflow com questions 4716503 best way to read a
  • Angularjs ui 路由器正则表达式

    我正在尝试匹配 1 个可以有 2 种值的参数 当前 或至少包含 10 个密码的数字 我试过了 url history code current 0 9 10 当我使用这个正则表达式时 我的应用程序会转到history current 但是当
  • 克服 Windows Azure Sql 数据库 150 GB 大小限制

    SQL Azure 的数据库大小限制为 150 GB 我已多次阅读他们的文档并在网上搜索 但我不清楚这一点 使用联合是否允许开发人员超越 150 GB 的数据库 例如我可以有几个 150GB 的联邦成员吗 如果没有 我如何在 Windows
  • js 中的脚本

    我有一个jsp页面 我根据请求参数动态添加一些内容到页面 请求将返回一个数组 基于此我必须创建一个下拉列表 我想在更改另一个下拉菜单时执行此操作 因此只能使用 javascript 来完成 但我无法在 js 中使用 scriptlet 这真
  • Node.js 快速路由和控制器有什么区别?

    与传统的快速路线控制器相比 有什么不同或更强大的地方吗 如果您有一个 Express 应用程序并定义了模型 那么它是否会成为 MVC 应用程序 还是还有更多必要 我只是想知道我是否因为不升级到更合法的 控制器 而错过了节点表达应用程序中的额
  • 在 ASP.NET MVC 上使用绝对路径访问视图

    我正在尝试以这种方式访问 视图 return View Items Details aspx 我收到此错误 无法找到视图 Items Details aspx 或其主视图 搜索了以下位置 Items Details aspx 在 Items
  • 用于设置 IIS 环境变量的 PowerShell 脚本

    如何使用 PowerShell 自动执行以下步骤 转到 IIS 并选择一个网站 网站名称很可能会作为参数在脚本中传递 Go Inside the Configuration Editor Choose the aspNetCore Sect
  • 为什么 .NET Remoting 服务器无法向 Internet 客户端发送事件

    如您所知 NET Remoting 有一些限制 其中之一是服务器无法跨 NAT 防火墙向 Internet 客户端发送事件 这是一个证据 http social msdn microsoft com forums en US netfxre
  • 如何为自定义 B2B 应用程序添加 Apple ID?

    我正在尝试将自定义 B2B 应用程序添加到 iTunes 连接 从 Apple 文档看来应该有一个文本框来输入客户端 Apple ID 但我似乎没有类似的内容 Apple 文档如下所示苹果文档 https i stack imgur com
  • 在 django 形式中使用reverse()

    我正在尝试使用 django 的撤销 https docs djangoproject com en dev topics http urls reverse我的自定义小部件的 django 表单定义中的函数 但出现错误 Improperl
  • 网站的 NuGet 包恢复

    我正在尝试使用 NuGet Package RestoreVS2010 视觉源安全 它对我来说部分有效 这是从哪里来的 NuGet 没有获取丢失的包 https stackoverflow com questions 17797052 nu
  • admob 与 AndEngine + google play 服务集成时无法显示游戏画面

    我正在使用 andengine 通过 google play 服务进行游戏开发 我的游戏运行良好 但是 一旦我添加了 admob 并调用了 onSetContentView 回调 我的游戏屏幕就会变黑 只有广告可见 这是我的回调 onSet
  • ASP.NET Core 3.0 中的本地化

    我正在尝试使用 resx 文件使我的项目本地化 对我来说 这不起作用 但对我正在从事该项目的同事来说 它也起作用 有关代码的一些详细信息 Startup cs 文件 public void ConfigureServices IServic
  • Matlab 矩阵中非连续预定义值的出现顺序

    我有一个 9 列矩阵 如下所示 X X X X X X 0 2 0 X X X X X X 6 2 0 X X X X X X 6 2 0 X X X X X X 7 2 0 X X X X X X 8 2 0 X X X X X X 8
  • 传递 HTTP 引荐来源网址(站点 A、B、C - A 到 C)?

    这是一个最好用例子来说明的问题 用户前往Site A 然后点击进入Site B 引用站点现在是站点 A 同一用户点击进入Site C来自站点 B 引用站点现在是站点 B 我想知道是否可以将站点 C 的引用站点显示为站点 A 如果愿意 则为初
  • 从服务器有没有办法知道我的页面正在 Iframe 中加载

    我在我的网页中使用 sammy js 如果有人在 IFrame 对于 IE 中使用此网页 它只会将整个页面重定向到 IFrame 的位置 所以 我在想是否有一种方法可以检查如果 IFrame 正在请求我的页面 如果是这种情况 那么我可以简单
  • 非法转义字符后跟空格

    我正在编写一些代码来使用在终端中加载和运行文件的进程来运行 shell 脚本 我遇到的问题是由于空格而导致终端识别文件名 例如 run file sh foo bar ss 应该在终端中运行 run file sh foo bar ss 这