-2

嗨,我想用Java 中的字符串中\的双反斜杠字符替换反斜杠字符\\,但 replace() 方法似乎不起作用。它给出了参数不匹配错误。我认为它不适用于特殊字符。任何解决这个问题?

这是我的代码片段:

String fileSeparator = System.getProperty("file.separator");
        JFileChooser chooser = new JFileChooser();
        chooser.setCurrentDirectory(new java.io.File("."));
        chooser.setDialogTitle("Locate Java Documentation Folder");
        chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        chooser.setAcceptAllFileFilterUsed(false);

        if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
            JTextField jtfFileLocation=new JTextField();
            jtfFileLocation.setText(chooser.getSelectedFile().getPath()+fileSeparator);
            String filePath=jtfFileLocation.getText();
            filePath.replaceAll("\\", "\\\\");
            System.out.println(filePath);
        } else {

        }
4

2 回答 2

7

您很可能没有正确转义反斜杠:

String newString = oldString.replace("\\", "\\\\");

一个文字反斜杠必须由两个反斜杠字符编码。很高兴这不是您正在处理的正则表达式:

String newString = oldString.replaceAll("\\\\", "\\\\\\\\");
于 2013-05-26T14:07:07.267 回答
0

尝试String newString = originalString.replace("\\", "\\\\");

于 2013-05-26T14:08:22.660 回答