JAVA将两个特定的字符包裹的字符取出来

,比如[2]+[4],我想要把字符串的数字取出来替换为其他的数字然后原路放回去,我不太会正则,希望JAVA大神们帮忙回答回答

正则表达式替换比较困难.

可以当做字符串来做,


/**
 * Created by bejond on 15-11-23.
 */
public class Test {
   public static void main(String[] args) {

      StringBuilder stringBuilder = new StringBuilder("[2]+[4]");

      int [] replaceValues = new int[] {1, 3};

      for ( int i = 0, j = 0; i < stringBuilder.length() && j < replaceValues.length; i++) { // i 用来循环String, j用来循环数组
         char c = stringBuilder.charAt(i); // 获取每个字符的内容

         if ( c >=48 && c <= 57) { // ASCII码48~57对应数字0~9
            if (j < replaceValues.length) {
               c = Character.forDigit(replaceValues[j], 10); // 将数字转换成字母,有很多种方法,你可以尝试下其他的方式.
               stringBuilder.setCharAt(i, c); // 替换数字
               j++;
            }
         }
      }
      System.out.print("The output string is: " + stringBuilder);
   }
}

温馨提示:答案为网友推荐,仅供参考
相似回答