用 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 中。