-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("\\", "\\\\");

1 つのリテラル バックスラッシュは、2 つのバックスラッシュ文字でエンコードする必要があります。あなたが扱っている正規表現ではないことを嬉しく思います:

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

試すString newString = originalString.replace("\\", "\\\\");

于 2013-05-26T14:08:22.660 に答える