如何实现这样的字符串变换(急!!!!!!!大家帮忙看一看呀,求求您了!!) 判断它的ASCII码能分析出字符是不是汉字,然后再作处理 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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()); }} String strTest="Êé±¾Êé±¾ Êébook,book.book";这句错了,应是一个测试字符串。例如:String strTest="书本书本书 本book,book.book"; 我的思路是这样: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()); to hq1305018(跃强):测试了一下你的代码 不对 to purejd(泪流满面):我的怎么不对了?用你的字符串测试也对啊? 哦,我做的是汉字之间加空格,不是每个汉字后面都加,如果想每个汉字后面都加更简单了,改一下就行。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()); }} to hq1305018(跃强):呵呵,我测出来是这种效果,你看看,不知道你测出来是什么样的String strTest="asdasd我爱你阿瑟大asdasd我阿瑟大asd";asdasd我 爱 你 阿 瑟 大asdasd我 阿 瑟 大asd 怎么对中文排序? 请帮助我 怎么实现flashget那样的悬浮窗功能啊? 看看哪位兄弟能帮我写个小程序,要求如下: 新问题,急 请关注这样的开发环境。。。 各位请进。。 新手很困惑,谁能帮我看看 连接数据库需要Northwind??? 各位师哥师姐 有个问题关于考scjp的! mysql的8小时close问题 时间量相加 轻量组件和重量组件
{
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());
}
}
String strTest="Êé±¾Êé±¾ Êébook,book.book";这句错了,应是一个测试字符串。例如:String strTest="书本书本书 本book,book.book";
写了一段简单的代码 通过了测试 欢迎指正.
//测试的字符串
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());
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());
}
}
呵呵,我测出来是这种效果,你看看,不知道你测出来是什么样的String strTest="asdasd我爱你阿瑟大asdasd我阿瑟大asd";asdasd我 爱 你 阿 瑟 大asdasd我 阿 瑟 大asd