您的位置:首页 > 其它

黑马基础测试10

2015-06-11 12:53 197 查看
package com.itheima;

/**
* 10、编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文(GBK码表),
* 例如:从“HM程序员”中截取2个字节是“HM”,截取4个则是“HM程”,截取3个字节也要是"HM"而不要出现半个中文
*
* @author 刘江涛
*
*/

public class Test10 {
public static void main(String[] args) throws Exception {
//定义待处理的字符串
String s = "HM程序员ajkvb你好";
//打印自定义的字符串
System.out.println(s);
//将s转换成byte数组存储到b中
byte[] b = s.getBytes("GBK");
//调用len方法返回需要在s上截取的字符个数
int num = len(b, 4);
//输出截取后的字符串
System.out.println(s.substring(0, num));
}

//len方法的实现
public static int len(byte[] b, int n) {
//定义计数器
int count = 0;
//定义标记变量,true表示没有没有碰到汉字
boolean flag = true;
//循环判断每个字节是否小于0
for (int i = 0; i < n; i++) {
//如果小于0,则证明是汉字的第一个字节,跳过一次count++,否则就是英文字节
if (b[i] < 0 && flag) {
flag = false;
} else {
count++;
flag = true;
}
}
return count;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: