我有一个替换字符串流的代码。我需要搜索属性文件
键中定义的特定字符串 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++;
}
但它不会取代单词。如何使用属性替换单词。
答案 0 :(得分:0)
这是因为您忘记使用set()方法分配结果:
listToken.set(i, propertiesSlang.getProperty(key)));
假设listToken
实施AbstractList
答案 1 :(得分:-2)
为什么用replace()使事情变得复杂。据我了解你的代码,你可以简单地做 -
String value = propertiesSlang.getProperty(key);
listToken.set(i, value);
我发现您已将代码再次修改为
listToken.get(i).replace(listToken.get(i), value);
这样您就知道String
班级是immutable
。因此replace()
或substring()
等操作会为您提供一个新字符串而不会修改原始字符串。获取新String并将其设置在列表listToken中。