用 java 中属性文件的值替换字符串
replace String with value of properties file in java
我有一个代码可以替换字符串流。我需要搜索在属性文件
的键中定义的特定字符串
String result="";
int i=0;
while (i<listToken.size()){
result = listToken.get(i);
while (enuKey.hasMoreElements()) {
String key = (String)enuKey.nextElement();
// String value = propertiesSlang.getProperty(key);
if (listToken.get(i).equals(key)){
String value = propertiesSlang.getProperty(key);
listToken.get(i).replace(listToken.get(i), value);
System.out.print("detected");
}
}
i++;
}
但它不会取代单词。我如何使用属性替换单词。
是因为你忘记给结果赋值了,使用方法set():
listToken.set(i, propertiesSlang.getProperty(key)));
假设 listToken
实施 AbstractList
为什么要用 replace() 使事情复杂化。据我了解你的代码,你可以简单地做 -
String value = propertiesSlang.getProperty(key);
listToken.set(i, value);
我看到你又修改了你的代码
listToken.get(i).replace(listToken.get(i), value);
只是为了让您知道 String
class 是 immutable
。所以像 replace()
或 substring()
这样的操作会给你一个新的字符串而不是修改原来的字符串。获取新字符串并将其设置在您的列表 listToken 中。
我有一个代码可以替换字符串流。我需要搜索在属性文件
的键中定义的特定字符串 String result="";
int i=0;
while (i<listToken.size()){
result = listToken.get(i);
while (enuKey.hasMoreElements()) {
String key = (String)enuKey.nextElement();
// String value = propertiesSlang.getProperty(key);
if (listToken.get(i).equals(key)){
String value = propertiesSlang.getProperty(key);
listToken.get(i).replace(listToken.get(i), value);
System.out.print("detected");
}
}
i++;
}
但它不会取代单词。我如何使用属性替换单词。
是因为你忘记给结果赋值了,使用方法set():
listToken.set(i, propertiesSlang.getProperty(key)));
假设 listToken
实施 AbstractList
为什么要用 replace() 使事情复杂化。据我了解你的代码,你可以简单地做 -
String value = propertiesSlang.getProperty(key);
listToken.set(i, value);
我看到你又修改了你的代码
listToken.get(i).replace(listToken.get(i), value);
只是为了让您知道 String
class 是 immutable
。所以像 replace()
或 substring()
这样的操作会给你一个新的字符串而不是修改原来的字符串。获取新字符串并将其设置在您的列表 listToken 中。