如题

解决方案 »

  1.   

    _8那个不管它,我的意思是说把2a3b_变成aabbb@   要怎样写代码呢,谢谢
      

  2.   

    public class Test { public static void main(String[] args) {
    String inStr = "2a3b_";
    StringBuffer sb = new StringBuffer();
    char[] inChars = inStr.toCharArray();
    int temp = 0;
    for (char inChar : inChars) { if (inChar >= '1' && inChar <= '9') {
    temp = Integer.valueOf(String.valueOf(inChar));
    } else {
    if (temp != 0) {
    for (int i = 0; i < temp; i++) {
    sb.append(inChar);
    }
    temp = 0;
    } else {
    if (inChar == '_')
    sb.append("@");
    }
    } }
    System.out.println(sb.toString());
    }}
    假设你的输入字符串是规则的,代码仅供参考,没仔细斟酌算法。
      

  3.   

    String s = "23a3b_6e_";
    Pattern p = Pattern.compile("\\d+\\w|_");
    Matcher m = p.matcher(s);
    String ss;
    StringBuilder sb = new StringBuilder();
    while(m.find()) {
    ss = m.group();
    if(ss.charAt(0)=='_') {
    sb.append('@');
    }else {
    for(int i=0; i<Integer.parseInt(ss.substring(0, ss.length()-1)); i++) {
     sb.append(ss.charAt(ss.length()-1));
    }
    }
    }
    System.out.println(sb.toString());