1

我有一个带表达式的字符串。例如,字符串是“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 而不是一个字符...

4

2 回答 2

3

要一次在数组中插入多个字符,请考虑使用 aStringBuilder代替。下面是你如何使用它:

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();
于 2012-06-05T18:54:10.070 回答
2

字符串是不可变的。因此,尝试对其进行变异是不好的做法。

使用StrigBuilder对象来操作字符串,它有一个 insert() 方法,可以让你做你所要求的。

于 2012-06-05T18:58:36.070 回答