将几个字符而不是一个字符插入字符串

时间:2012-06-05 18:51:21

标签: java

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

2 个答案:

答案 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()方法,可以让你完成你所要求的。