混合字符串(中英混合)的分割问题!!急!!解决马上结帐 编码: GB2312现有一个字符串其实是中英混合的,我要将其分割成两段,但我不知道其中文和英文的位置如果分割才不会把一个中文给割成两份从而变成乱码呢?求一段代码!!跪求 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 同意2楼,你担心太多了,java里面的char是16位的你忘了么你现在用String来存放这个字符串,然后用charAt一个一个取出来,无论中英文都是正常的阿,你可以用String的substring方法随便分割 弄个令人疯狂的.:)=========================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());}然后再把连续的英文连起来! 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;} 不用担心,在java 中不会有这个问题,java是unicode编码 试了一下结果是我想太多了,好搞C++...不习惯JAVA,哈哈,送分 java 如何调试(实例未结束跟踪) 请教一下 内部类匿名类是如何定义的? 急!!帮忙解决 问题详情如下 JAVA内部类干吗用的?常用吗? JAVA读rs485怎么读 java高难度题(1000行左右的代码) ,一般水平的别看 外包一个jsp的关于收发文管理的网站,要求在北京 在做javaQQ想做个快捷键代码该怎么写啊 防止反编译的功能 java application调用数据库问题 讨论(final与final static之间的区别及优势)
你现在用String来存放这个字符串,然后用charAt一个一个取出来,无论中英文都是正常的阿,你可以用String的substring方法随便分割
=========================
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());
}
然后再把连续的英文连起来!
{
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;
}