2012-06-05 2 views
1

표현식이있는 문자열이 있습니다. 예를 들어 문자열은 "a + b"입니다. 그 문자 대신에 float 변수를 삽입해야합니다. "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

문자열을 변경할 수 없습니다. 그러므로 돌연변이를 시도하는 것은 나쁜 습관입니다.

문자열을 조작하는 데 객체를 사용하면 삽입() 메소드가있어서 사용자가 요청한 것만 수행 할 수 있습니다.

관련 문제