java按字节截取字符串
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java中按字节数截取字符串
2008-03-30 13:47
最近遇到一个在Java中按照字节数截取字符串的问题,由于中文跟英文单个字符长度不同故很容易出现问题。就这个问题,我也在网上搜过,但是发现网上的代码好多都存在问题:具体问题在这里由于时间的问题也就不在多说了。现在我将我自己做的并且经过测试了的代码贴到空间上面来以供参考:
package test;
/**
*
Title:
*
*
Description:
*
*
Copyright: Copyright (c) 2008
*
*
Company:
*
* @author not attributable
* @version 1.0
*/
public class SplitString {
/**
*
* @param str String 被截字符串
* @param bytes int 被截字符数
* @return String 返回字符串
*/
public static String SplitString(String str, int bytes) {
int count = 0; //统计字节数
String reStr = ""; //返回字符串
if (str == null) {
return "";
}
char[] tempChar = str.toCharArray();
for (int i = 0; i < tempChar.length; i++) {
String s1 = str.valueOf(tempChar[i]);
byte[] b = s1.getBytes();
count += b.length;
if (count <= bytes) {
reStr += tempChar[i];
}
}
return reStr;
}
public static void main(String[] args) {
String str = "我ABC汉DDFGH";
String s = SplitString(str, 6);
System.out.println(s);
//注:输出结果即为:我ABC
因为要截6个字符而一个中午占2个字符,但是一个汉字又不可能分成两半故输出结果会为:我ABC
如果截取的字符数为7的话那么结果就会是:我ABC汉了!
}