2015-03-26 2 views
2

У меня есть код для замены потока строки. Мне нужно найти определенную строку, которая определена в ключе файла свойствзаменить String значением файла свойств в 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++; 
     } 

Но это не заменяет слово. Как я могу заменить слова, используя свойства.

+1

Рассмотрите возможность использования [runnable example] (https://stackoverflow.com/help/mcve), который демонстрирует вашу проблему. Это не дамп кода, а пример того, что вы делаете, что подчеркивает проблему, с которой вы сталкиваетесь. Это приведет к меньшему путанице и лучшим ответам – MadProgrammer

ответ

0

Это потому, что вы забыли присвоить результат, используя метод set():

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

listToken реализует при условии AbstractList

+0

Благодарим вас за ответ –

-2

Зачем усложнять вещи с заменой(). Насколько я понимаю ваш код, который вы можете просто сделать -

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

Я вижу, что вы изменили свой код снова

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

Просто так, что вы знаете String класс immutable. Таким образом, операции типа replace() или substring() дадут вам новую строку и не изменят исходную. Получите новую строку и установите ее в списке listToken.

+0

Благодарим за ответ –

+0

Мне просто нравится, когда такие люди, как вы, копируют существующий ответ, а затем получают «принятый». У тебя нет стыда, ха? – alfasin

+0

Будет ли уважать, я был первым, чтобы ответить на этот вопрос. Плюс OP дважды изменил свой вопрос, и я включил их в мой ответ. И я думаю, вы должны следить за тоном и делать какие-то проверки, прежде чем что-то обобщать и спрашивать кого-то, если у него нет стыда. –