字符串处理问题,高手指教!!在线等 编一个函数,两个参数一个字符串,一个是要截取的字符串个数,按照数字对字符串的进行截取,如: ABC汉.数字是3则输出ABC,如果是4则还是输出ABC,不能输出半个汉字. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private static String cut(String str, int len) { String retstr = str.substring(0, len); while(retstr.getBytes().length > len) { retstr = retstr.substring(0, retstr.length() - 1); } return retstr; }楼主客气了。 一个可行的方法:利用reaplaceAll方法,把字符串中的汉字全用空格替换。然后取字符串长,在这里面把空格删除(如果不要空格的话) 我已经有比较完美的解决办法,但为了防止不给分的情况发生,如下贴:http://community.csdn.net/Expert/topic/5106/5106302.xml?temp=.2036707请先给分,我再贴我的方法。如果方法无效、不好,我把分给回你。强烈抗议赖分行为!编号:243941 发送者:yyfeel 发送时间:2006-10-23 16:02:14 删除 回复 接受者:gzpoplar 重要性:重要性:1 非常不重要重要性:2 不重要重要性:3 一般重要性:4 重要重要性:5 非常重要 内容 能给多少给多少,还请赐教编号:246630 发送者:gzpoplar 发送时间:2006-10-27 13:31:51 删除 回复 接受者:w5552 重要性:重要性:1 非常不重要重要性:2 不重要重要性:3 一般重要性:4 重要重要性:5 非常重要 内容 不给我分? 编号:244972 发送者:gzpoplar 发送时间:2006-10-25 12:25:43 删除 回复 接受者:yyfeel 重要性:重要性:1 非常不重要重要性:2 不重要重要性:3 一般重要性:4 重要重要性:5 非常重要 内容 Re:能给多少给多少,还请赐教IP数据表增加2个字段:ipstartlong, ipendlong 略............................................最好短期内不要公开,虽然比较滥,但很管用。 YidingHe(机枪兵)你的只是能解决汉字在最后的情况!不能处理中间的情况! 这还是不太难的用个比较土的办法是 先把string转化为byte 当然用gb2312了 这样汉字就是负的数了。当然汉字是两位,其他符号是一位,那么就在其他符号前加个(byte)i (i=128)当你输入一个数时,加一倍,比如是5 那么就是10了。 这个时候你判断 如果在10时是负的,那么在真正取的时候就减1,那么就使4了,还有记的既然不要汉字,就不负数不输出。比如字符串 "活动,123@A好"。你输入4时,就应该输出 ",1"。思路应该是正确的。具体算法 楼主自己实现霸。我这个思路解决了oracle 中文显示问题!(后记,如果输入的标点符号是中文的,上述情况下 输出 "1") 好吧我改了一下: private static String cut(String str, int len) { String retstr = str.substring(0, Math.min(len, str.length())); while(retstr.getBytes().length > len) { retstr = retstr.substring(0, retstr.length() - 1); } return retstr; }我的方法我试过的,我的结果是:cut("中3国567", 4) = "中3" //“国”字算一半cut("中3国567", 7) = "中3国56"cut("中华人民234共和国", 5) = "中华" //“人”字算一半如果不对的话,莫非楼主的真实意思是“只要解决汉字在最后的情况,不要处理中间的情况”? 请问:Math.min(len, str.length()是什么意思? gzpoplar(poplar)等你的答案!!! public static String sub(String src, int len) { String result = null; if (null != src) { result = src; while (result.getBytes().length > len) { result = result.substring(0, result.length() - 1); } } return result; } 求一个替换字符串的最优写法 关于Swing的JTable的行列融合 JRE都在 Jdk\jre\ 目录下吗?那 \JDK\LIB\目录下的内容难道不是JRE的组成部分吗? 下载了一个生物信息的java api类包,弱问下应该把里面的文件放在jdk的哪个夹里用? 用java如何写全屏显示的界面 请问Struts中的<html:button>标签中的property到底有什么用??请教一下,我是晕了 关于三层架构中sql语句的问题! lucene jar包的问题 关于继承的一个小问题 如何在java中引用多个接口呢(在线加分) 接口到底是什么东东,书上写的没理解 请问关于JLabel显示
String retstr = str.substring(0, len);
while(retstr.getBytes().length > len) {
retstr = retstr.substring(0, retstr.length() - 1);
}
return retstr;
}楼主客气了。
利用reaplaceAll方法,把字符串中的汉字全用空格替换。
然后取字符串长,在这里面把空格删除(如果不要空格的话)
http://community.csdn.net/Expert/topic/5106/5106302.xml?temp=.2036707
请先给分,我再贴我的方法。如果方法无效、不好,我把分给回你。强烈抗议赖分行为!
编号:243941 发送者:yyfeel 发送时间:2006-10-23 16:02:14 删除 回复
接受者:gzpoplar 重要性:重要性:1 非常不重要重要性:2 不重要重要性:3 一般重要性:4 重要重要性:5 非常重要
内容 能给多少给多少,还请赐教编号:246630 发送者:gzpoplar 发送时间:2006-10-27 13:31:51 删除 回复
接受者:w5552 重要性:重要性:1 非常不重要重要性:2 不重要重要性:3 一般重要性:4 重要重要性:5 非常重要
内容 不给我分? 编号:244972 发送者:gzpoplar 发送时间:2006-10-25 12:25:43 删除 回复
接受者:yyfeel 重要性:重要性:1 非常不重要重要性:2 不重要重要性:3 一般重要性:4 重要重要性:5 非常重要
内容 Re:能给多少给多少,还请赐教IP数据表增加2个字段:ipstartlong, ipendlong
略............................................
最好短期内不要公开,虽然比较滥,但很管用。
你的只是能解决汉字在最后的情况!不能处理中间的情况!
用个比较土的办法是 先把string转化为byte 当然用gb2312了 这样汉字就是负的数了。当然汉字是两位,其他符号是一位,那么就在其他符号前加个(byte)i (i=128)
当你输入一个数时,加一倍,比如是5 那么就是10了。 这个时候你判断 如果在10时是负的,那么在真正取的时候就减1,那么就使4了,还有记的既然不要汉字,就不负数不输出。
比如字符串 "活动,123@A好"。你输入4时,就应该输出 ",1"。思路应该是正确的。
具体算法 楼主自己实现霸。我这个思路解决了oracle 中文显示问题!
(后记,如果输入的标点符号是中文的,上述情况下 输出 "1")
String retstr = str.substring(0, Math.min(len, str.length()));
while(retstr.getBytes().length > len) {
retstr = retstr.substring(0, retstr.length() - 1);
}
return retstr;
}我的方法我试过的,我的结果是:cut("中3国567", 4) = "中3" //“国”字算一半
cut("中3国567", 7) = "中3国56"
cut("中华人民234共和国", 5) = "中华" //“人”字算一半如果不对的话,莫非楼主的真实意思是“只要解决汉字在最后的情况,不要处理中间的情况”?
等你的答案!!!
String result = null;
if (null != src) {
result = src;
while (result.getBytes().length > len) {
result = result.substring(0, result.length() - 1);
}
}
return result;
}