现在又两个功能,就是关于中引文字符的相互替换,即  中文字符《==》 英文字符
具体是这样的,就是在一个表单中有一个<textarea>元素,现在要替换<textarea>元素中输入的英文字符,如单引号、双引号、逗号、句号、分号、省略号、&符号、换行符、制表符、回车等等,将起转换为对应的中文字符;
反之同样是中文的字符转换为英文字符,在Java中如何实现这样的功能……急救……下面我具体写了一个英文字符装换中文字符的例子,但是不是很全面,望各位大哥帮帮忙……
代码如下:        public static String  replaceBlank(String str){
if(str == null || "".equals(str) || str.length() < 1){
str = "";
}
str = str.replaceAll("\"(.*?)\"", "“$1”").replaceAll("'(.*?)'", "‘$1’");
str = str.replaceAll(",", ",");
//str = str.replaceAll(".", "。");
str = str.replaceAll(";", ";");
Pattern p = Pattern.compile("\\ss*|\t|\r|\n");
Matcher m = p.matcher(str);
String after = m.replaceAll(" ");
return after;
}

解决方案 »

  1.   

    做个替换表管理就好了,可以分别用英文-中文两个数组保存对象的符号,也可以用Map
    for example,如果是Map,就保存 Map<String, String> map; map.put("\"", "”");
    String[] enSymbol = {"\"", "'", ",", "[.]", ";", "...", "&", "\t", "\n", "\r"};
    STring[] cnSymbol = {"“", "‘", ",", "。", ";", "……", "", "", "", ""}; //后面的想换成什么字符
    for (int i=0; i<enSymbol.length; i++) {
        str = str.replaceAll(enSymbol[i], cnSymbol[i]);
    }
    System.out.println(str);