我正在编写一些代码,以使用在终端中加载并运行文件的过程来运行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)+" ");
但这似乎并不能代替任何东西。任何帮助将不胜感激。
谢谢
如果要将\
字符(即转义字符)放在字符串中,则需要对其进行转义:
string = string.replaceAll (" ", "\\ ");
单个\
字符是转义序列的前导字符,例如,\n
(换行符)或\r
(回车符)。单字符转义的完整列表为:
\b backspace
\t tab
\n linefeed (newline)
\f form feed
\r carriage return
\" double quote
\' single quote
\\ backslash
这是除了八进制转义序列S,从而为\0
,\12
或\377
。
您的separatorChar
解决方案无法正常工作的原因是,它为您提供了 分隔符
char(/
在UNIX及其弟兄下),而不是\
您所需的转义符。
问题内容: 我想在链接末尾获得名称,所以我做到了 Eclipse表示String文字没有被双引号正确关闭 如何比较String和这个char ? 问题答案: 字符“ \”是一个特殊字符,用作字符串的一部分时需要转义,例如“ \”。这是使用’'字符进行字符串比较的示例: 您还可以使用类似于以下内容的逻辑执行直接字符比较:
问题内容: 我正在解析一个数据集,该数据集令人讨厌地决定以逗号分隔TSV(PharmaGKB途径,我在看着你)中的项目,但是在每个逻辑元素中都允许使用逗号。 基本上,逗号后跟空格表示没有定界,而逗号后跟字符表示新元素。 “这是一个,一个,两个,三个元素” 应该: 这是一个元素 两个要素 三要素 我有regex ,它可以很好地拆分, 但是 每次拆分后都会删除第一个字符。 这是一个元素 元素 三元素
问题内容: 我已经完成了更改注册表数据的.java文件。但是我在存在的行上收到“非法转义字符”错误。我的错误在哪里? 问题答案: 您需要转义路径中使用的 反斜杠 。
问题内容: 为了回答这个问题,我设法通过转义反斜杠来使字符串成为转义字符。 当我尝试将其概括为转义所有转义的字符时,它似乎无能为力: 但是对于特定的转义字符使用相同的方法,它确实起作用: 有一般的方法可以做到这一点吗?应包括,,,等。 问题答案: 使用r’text’将字符串定义为raw,如下面的代码所示:
在XSLT 1.0中,处理此xml元素的最佳方法是什么 请注意,“小于号”表示两次。i、 e.as<代码>' 退出<代码> 如果我将禁用输出转义设置为“是”,则
反斜线()用于插入在 Markdown 语法中有特殊作用的字符。 这是用来 *演示* 的 _文本_ 这是用来 *演示* 的 _文本_ 这是用来 演示 的 文本 这是用来 *演示* 的 _文本_ 这些字符包括: ` * _ {} [] () # + - . !