Заменить переменную с обратным слэшем - PullRequest
1 голос
/ 08 марта 2019

Цель кода - заменить значение другим значением для файла конфигурации.

Старое значение присваивается переменной oldValue = "serverip = http://82.347.34.12"

Новое значение присвоено другой переменной newValue = "serverip = http://99.347.34.12"

void searchFile(File nameOfFile, String oldValue, String newValue) throws IOException {
    try {

                System.out.println("Old setting: " + lines); // returns -> serverip=http:\/\/82.347.34.12
                System.out.println("New setting: " + settingToApply); // returns --> serverip=http:\/\/99.347.34.12

                Path path = Paths.get(SETTINGS);
                Charset charset = StandardCharsets.UTF_8;

                String content = new String(Files.readAllBytes(path), charset);

                // changes any cases correctly except when value have \
                content = content.replaceAll(oldValue, newValue); 
                Files.write(path, content.getBytes(charset));

        }

        scanner.close();
    } catch (FileNotFoundException e) {
        // handle this
    }
}

}

Спасибо.

1 Ответ

1 голос
/ 08 марта 2019

String.replaceAll принимает регулярное выражение .Вам придется либо экранировать специальные символы регулярных выражений (например, косые черты), либо использовать String.replace, что не требует регулярных выражений.

...