如何实现这样的字符串变换(急!!!!!!!大家帮忙看一看呀,求求您了!!) 判断它的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 求大家帮我写一个线程池吧 SCJP考题一道:Java desk application's possible exceptions. 求Thinking in Java电子版。 请问大家用什么加壳软件保护自己开发的软件,哪一款加壳工具最好? 50分求助急下到不少资料文件名全是数字扩展名也是数字,不知道如何打开。高手指教 一个线程如何读取另一个进程中的Hashtable内容 急~~这里的大侠们能帮帮忙吗~谢谢了 Windows 2000 Server下如何配置jdk1.3的运行环境? jbuilder5大家的机器都需要多长时间才能启动? Java面试题 时间量相加 轻量组件和重量组件
{
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