编码:  GB2312现有一个字符串其实是中英混合的,我要将其分割成两段,但我不知道其中文和英文的位置如果分割才不会把一个中文给割成两份从而变成乱码呢?求一段代码!!跪求

解决方案 »

  1.   

    同意2楼,你担心太多了,java里面的char是16位的你忘了么
    你现在用String来存放这个字符串,然后用charAt一个一个取出来,无论中英文都是正常的阿,你可以用String的substring方法随便分割
      

  2.   

    弄个令人疯狂的.:)
    =========================
    String d="";
    for(int i=0;i<26;i++) {d+=(char)('a'+i);d+=(char)('A'+i);};
    StringTokenizer st = new StringTokenizer(str,d,true);
    while (st.hasMoreTokens()) {
       System.out.println(st.nextToken());
    }
    然后再把连续的英文连起来!
      

  3.   

    public static ArrayList divide(String str)
    {
        ArrayList al=new ArrayList();
        int i,begin=0,count=1;
        if(str==null) return;
        else if(str.length()<2) al.add(str);
        for(i=0;i<str.length()-1;i++)
        {
          begin=i;
          count=1;
          while(!(isEnglish(str.charAt(i))^isEnglish(str.charAt(i+1))))
         {
     if(i<str.length()-2) i++;
     else break;
     count++;
         }
         if(str.length()-2==i) count++;
         al.add(str.substring(begin, begin+count));
       }
    }
    public static boolean isEnglish(char ch)
    {
        if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')) return true;
    else return false;
    }
      

  4.   

    不用担心,在java 中不会有这个问题,java是unicode编码
      

  5.   

    试了一下结果是我想太多了,好搞C++...不习惯JAVA,哈哈,送分