String s = "12345678"
如何用正则 替换成 “一二三四五六七八”

解决方案 »

  1.   

    用正则倒是不会了,java程序还可以
      

  2.   


    public static void main(String[] args) {

    String s = "12345678";
    Pattern pattern = Pattern.compile("12345678");
    Matcher m = pattern.matcher(s);
    while(m.find()){
    String str = m.replaceAll("一二三四五六七八");
    System.out.println(str);
    } }
    输出结果:
    一二三四五六七八
      

  3.   

    这个只能自己写吧。用个数组String[] hanzi = new String[]{"一",...............};
    然后直接取就行了。用正则会更简单吗?
      

  4.   

    好个P。hash码有顺序吗?
    用char值。
      

  5.   

    public class Test{
    public static void main(String[] args) {
    char[] arr = {'一','二','三','四','五','六','七','八','九'};
    String s = "654785412336974145";
    System.out.println(s);
    for (int i = 0,len = s.length();i < len;i++) {
    System.out.print(arr[Integer.parseInt(s.charAt(i)+"") - 1]);
    }
    }
    }C:\>java Test
    654785412336974145
    六五四七八五四一二三三六九七四一四五
      

  6.   

    char [] cs= {'','一','二','三','四','五','六','七','八','九'};
    '1' ->  cs['1'-'0']
    '2' ->  cs['2'-'0']
    ...
    'n' ->  cs['n'-'0']