我有一个带表达式的字符串。例如,字符串是“a + b”。我需要插入浮点变量而不是那些字符。 “a”= 2.4494,“b”= 5.545466。我将变量转换为字符串,然后从带有表达式的字符串和值数组char数组生成。
expr = expressions.get(i)[0]; // string with expression
for (int j = 0; j < valsListArray.length; j++) {//find characters and values
//they should have
String selection = (String) valsListArray[j].getSelectedItem(); //get
//chosen character
Float valueFloat = segmentAreas.get(j); //get value
String valueString = "" + valueFloat;
char[] charexpr = expr.toCharArray(); //
char[] valueChar = valueString.toCharArray();
char[] ch = selection.toCharArray();
for (int jj = 0; jj < charexpr.length; jj++) {
if (charexpr[jj] == ch[0]) {
charexpr[jj] = valueChar[0]; //here is the problem
}
}
String s =new String(charexpr);
expr = s;
但是我无法理解如何插入整个charArray而不是一个字符......
答案 0 :(得分:3)
要一次在数组中插入多个字符,请考虑使用StringBuilder
。以下是您使用它的方式:
StringBuilder sb = new StringBuilder("initial string");
sb.append("another string");
sb.append(new char[] {'c', 'h', 'a', 'r', 's'});
sb.append(1.0f);
String str = sb.toString();
答案 1 :(得分:2)
字符串是不可变的。因此尝试改变它是不好的做法。
使用StrigBuilder对象来操作字符串,它有一个insert()方法,可以让你完成你所要求的。