2012-06-05 110 views
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而不是一個字符...

+1

使用StringBuilder –

回答

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(); 
+0

但我不知道如何找到值的字符串中的位置? –

+0

這取決於你需要做什麼(我的意思是:只有你知道如何找到正確的插入點),但'StringBuilder'允許你使用'insert()'方法在給定位置插入一個字符序列 –

2

一個字符串是不可變的。因此嘗試對其進行變異是不好的做法。

使用StrigBuilder對象來操縱字符串,它有一個insert()方法,使您可以完成您所要求的操作。

相關問題