【问题标题】:replace String with value of properties file in java用java中的属性文件的值替换字符串
【发布时间】:2015-05-30 00:46:18
【问题描述】:

我有一个替换字符串流的代码。我需要搜索在属性文件的键中定义的特定字符串

    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++;
        }

但它不能代替单词。如何使用属性替换单词。

【问题讨论】:

  • 考虑提供一个runnable example 来证明您的问题。这不是代码转储,而是您正在做的事情的一个例子,它突出了您遇到的问题。这将减少混乱并获得更好的响应

标签: java string replace properties


【解决方案1】:

为什么要用replace() 使事情复杂化。据我了解你的代码,你可以简单地做 -

String value = propertiesSlang.getProperty(key);
listToken.set(i, value);

我看到你又修改了你的代码

listToken.get(i).replace(listToken.get(i), value);

只是为了让您知道String 类是immutable。所以像replace()substring() 这样的操作会给你一个新的字符串,而不是修改原来的。获取新字符串并将其设置在您的列表 listToken 中。

【讨论】:

  • 感谢您的回答
  • 我喜欢像你这样的人复制现有答案然后被“接受”。你没有羞耻感,哈?
  • 请尊重我是第一个回答这个问题的人。 Plus OP 在那之后两次修改了他的问题,我将它们都纳入了我的回答中。而且我认为在概括某些事情并询问某人是否没有羞耻感之前,您应该注意自己的语气并进行一些背景调查。
  • 不是第一个,而且在我发表我的答案后至少 5 分钟你没有发表你的答案。我知道那是因为我徘徊了一下然后离开了。 OP 添加代码这一事实并不意味着任何原因,导致问题保持不变。现在要做的就是道歉并删除您的答案。但我想,没有羞耻心的人一开始就不会卑鄙……
【解决方案2】:

是因为你忘了赋值结果,使用方法set()

listToken.set(i, propertiesSlang.getProperty(key)));

假设listToken 实现AbstractList

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 2015-05-01
    相关资源
    最近更新 更多