我已閱讀並嘗試以下如何從屬性值刪除反斜槓Java中
- How to remove the backslash in string using regex in Java?
- Java, Removing backslash in string object
- String replace a Backslash
和許多博客很好,但都是去除from string not for properties文件
I我試圖刪除屬性文件中值\
,但沒有運氣
這裏是我的config.properties
文件
query=select * from users
field=id
和我的Java代碼,A.java
是
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
public class A {
public static void main(String[] args) throws IOException {
String configPath = "/home/arif/util-test/config.properties";
Properties prop = new Properties();
FileInputStream configFileInputStream = new FileInputStream(configPath);
prop.load(configFileInputStream);
System.out.println("Property file loaded "+ configPath);
configFileInputStream.close();
String query = prop.getProperty("query");
query += " where " + prop.getProperty("field") + " = 1";
//query = query.replaceAll("\\\\", "");
query = query.replace("\\", "");
prop.replace("query", query);
prop.store(new FileOutputStream(configPath), null);
System.out.println("updated query="+ query);
}
}
和更新config.properties
文件
#Mon Oct 03 14:34:27 IST 2016
query=select * from users where id \= 1
field=id
,而我期待下面
#Mon Oct 03 14:34:27 IST 2016
query=select * from users where id = 1
field=id
,並正從終端或CMD預期的輸出,端子輸出是
Property file loaded /home/arif/util-test/config.properties
updated query=select * from users where id = 1
您的幫助將不勝感激!謝謝
@PeterLawrey,你在標記重複之前有沒有讀過問題? –
@PeterLawrey這不是同一個主題,這裏的問題是'='是屬性文件中的特殊字符,因爲它用於分割鍵和給定屬性的值,使得它總是被轉義一個反斜槓,但對於最終用戶來說它是完全透明的,因爲調用'getProperty(「query」)'將返回沒有反斜槓的值 –
爲什麼你想刪除反斜槓,因爲它對你來說是透明的?它只是一個實現細節 –