字符串替换方法不起作用

时间:2012-06-06 19:04:08

标签: java replace

我尝试用浮点值替换表达式中的字符。在第一种情况下,一切都很好,在第二种情况下没有任何反应。这是我的代码:

expr = expressions.get(i)[0];
for (int j = 0; j < valsListArray.length; j++) {
    String selection = (String) valsListArray[j].getSelectedItem(); 
    Float valueFloat = segmentAreas.get(j);                      
    String valueString = "" + valueFloat;
    expr = expr.replace(selection, valueString);
}
for (int jj = 0; jj < koefsLabelsArray.size(); jj++) {
    String selection1 = (String) koefsLabelsArray.get(jj).getText();                
    String valueString1 = valsOfKoefs.get(jj).getText();
    expr = expr.replace(selection1, valueString1); //here nothing happens
    System.out.println(expr);
}

3 个答案:

答案 0 :(得分:3)

而不是

expr = expr.replace(valueString1, selection1);

你应该使用以下我猜:

expr = expr.replace(selection1, valueString1);

答案 1 :(得分:2)

编辑:

您可能想要调用replaceAll方法而不是replace。尝试

expr = expr.replaceAll(selection1, valueString1);


编辑:

这对我来说很合适,既然我对你的变量一无所知,那么问题就在那里?

   String var = "abcbdbebfb";
    float f = 1.0f;
    String toFind = "b";
    var = var.replaceAll(toFind,(String.valueOf(f)));
    System.out.println(var);

输出:

a1.0c1.0d1.0e1.0f1.0

答案 2 :(得分:0)

所以我明白问题的出现是因为我从JLabel得到了第一个字符串“selection1”(但我不明白为什么),在另一种情况下一切都还可以。