使用java regex用ascii代码替换非ascii字符

时间:2014-01-27 03:40:05

标签: java regex non-ascii-characters

我有这样的字符串T 8.ESTÜTESTतुम मेरी。现在使用java正则表达式我想用其等效代码替换非ascii字符Üतुम मेरी

我怎样才能实现这个目标?

我可以用任何其他字符串替换它。

String str = "T 8.ESTÜTESTतुम मेरी";
String resultString = str.replaceAll("[^\\p{ASCII}]", ""); System.out.println(resultString);

打印T 8.ESTTEST

1 个答案:

答案 0 :(得分:1)

抱歉,我不知道如何使用一个正则表达式执行此操作,请检查这是否适合您

    String str = "T 8.ESTÜTESTतुम मेरी";

    StringBuffer sb = new StringBuffer();
    for(int i=0;i<str.length();i++){
        if (String.valueOf(str.charAt(i)).matches("[^\\p{ASCII}]")){
            sb.append("[CODE #").append((int)str.charAt(i)).append("]");
        }else{
            sb.append(str.charAt(i));
        }
    }
    System.out.println(sb.toString());

打印

T 8.EST[CODE #220]TEST[CODE #2340][CODE #2369][CODE #2350] [CODE #2350][CODE #2375][CODE #2352][CODE #2368]

问题似乎是如何告诉正则表达式如何将它找到的内容转换为代码。