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

,比如[2]+[4],我想要把字符串的数字取出来替换为其他的数字然后原路放回去,我不太会正则,希望JAVA大神们帮忙回答回答... ,比如[2]+[4],我想要把字符串的数字取出来替换为其他的数字然后原路放回去,我不太会正则,希望JAVA大神们帮忙回答回答 展开
 我来答
来自博山寺温文尔雅 的矢车菊
推荐于2016-08-03 · 超过24用户采纳过TA的回答
知道答主
回答量:82
采纳率:0%
帮助的人:24.5万
展开全部

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

可以当做字符串来做,


/**
 * 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);
   }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式