判断它的ASCII码能分析出字符是不是汉字,然后再作处理

解决方案 »

  1.   

    public class  testStringAdd
    {
    public static void main(String[] args) 
    {
    String strTest="Êé±¾Êé±¾ Êébook,book.book";
    char[] chsTest=strTest.toCharArray();
    StringBuffer objTest=new StringBuffer();
    objTest.append(chsTest[0]);
    boolean isLetter=(Character.getType(chsTest[0])!=5);
    for(int i=1;i<chsTest.length;i++)
    {
      if(Character.getType(chsTest[i])!=5)
      {
      objTest.append(chsTest[i]);
      isLetter=true;
      }
      else
      {     
     
     if(!isLetter)
     {
    objTest.append(" ");
     }
     objTest.append(chsTest[i]);
     isLetter=false;
      }
    }
    System.out.println(objTest.toString());
    }
    }
      

  2.   


    String strTest="&Ecirc;é±&frac34;&Ecirc;é±&frac34; &Ecirc;ébook,book.book";这句错了,应是一个测试字符串。例如:String strTest="书本书本书 本book,book.book";
      

  3.   

    我的思路是这样:java是采用unicode编码,将最小的简体中文的unicode编码作为基准(其实可以更小),编码大于基准的则为汉字,处理起来就简单了.
    写了一段简单的代码 通过了测试 欢迎指正.
    //测试的字符串
    String test="d防dd止asd用asdasd你们不会相信bmw自己";
    //StringBuffer 接收处理后的字符
    StringBuffer buffer=new StringBuffer();
    //最小的汉字u编码 从gb-unicode对照表查的 好像不对
    String base="\u2121";
    分割字符串为数组
    String[] temp=test.split("");
    for(int i=0;i<temp.length;i++){
    //String的compareTo方法,返回unicode编码的差值,>0说明是汉字
        if(temp[i].compareTo(base)>0){
    //加" "
            temp[i]+=" ";
    //如果改汉字前面的字符为英文/数字之类 则在前面加" "
            if((i>1)&&(temp[i-1].compareTo(base)<0)){
                temp[i]=" "+temp[i];
            }
        }
        buffer.append(temp[i]);
    }
    System.out.println(buffer.toString());
      

  4.   

    to hq1305018(跃强):测试了一下你的代码 不对
      

  5.   

    to purejd(泪流满面):我的怎么不对了?用你的字符串测试也对啊?
      

  6.   

    哦,我做的是汉字之间加空格,不是每个汉字后面都加,如果想每个汉字后面都加更简单了,改一下就行。
    public class  testStringAdd1
    {
    public static void main(String[] args) 
    {
    String strTest="d防dd止asd用asdasd你们不会相信bmw自己          char[] chsTest=strTest.toCharArray();
    StringBuffer objTest=new StringBuffer();
    for(int i=0;i<chsTest.length;i++)
    {
      objTest.append(chsTest[i]);
      if(Character.getType(chsTest[i])==5)
      {     
    objTest.append(" ");
      }
    }
    System.out.println(objTest.toString());
    }
    }
      

  7.   

    to hq1305018(跃强):
    呵呵,我测出来是这种效果,你看看,不知道你测出来是什么样的String strTest="asdasd我爱你阿瑟大asdasd我阿瑟大asd";asdasd我 爱 你 阿 瑟 大asdasd我 阿 瑟 大asd