替换具有反斜杠的变量
Replace variable having backslach
代码的目的是用配置文件的另一个值替换值。
旧值赋给一个变量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
}
}
}
谢谢。
String.replaceAll
取一个 Regular Expression。您将不得不转义正则表达式特殊字符(例如斜杠)或使用 String.replace
,它不采用正则表达式。
代码的目的是用配置文件的另一个值替换值。
旧值赋给一个变量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
}
}
}
谢谢。
String.replaceAll
取一个 Regular Expression。您将不得不转义正则表达式特殊字符(例如斜杠)或使用 String.replace
,它不采用正则表达式。