我尝试用浮点值替换表达式中的字符。在第一种情况下,一切都很好,在第二种情况下没有任何反应。这是我的代码:
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);
}
答案 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”(但我不明白为什么),在另一种情况下一切都还可以。