本帖最后由 wayonEmes 于 2015-8-13 23:31 编辑
public class Test_10 {
public static void main(String[] args) throws Exception {
String s = "HM程序员";
method(s, 4);
}
// 定义方法,截取字符串
public static void method(String s, int x) throws Exception {
// 定义变量length,接收输入的字符串的字节长度
int length = s.getBytes("GBK").length;
System.out.println(length);
// 判断字符串是否为空字符串或空格
if (s.matches(" +") || s.equals("")) {
System.out.println("请不要输入空字符串!!");
return;
}
// 判断输入的截取长度x是否符合规则
if (x > length || x < 0) {
System.out.println("截取长度不正确!!");
return s;
} else if (x <= length && x > s.length()) {
return;
} else {
// 获取伪截取后的字符串
// 需要做判断,输入的x是否小于字符串长度
String str1 = s.length() > x ? s.substring(0, x) : s;
// 获取伪截取后字符串的字节长度num
int num = str1.getBytes("GBK").length;
// 为x重新赋值,进行真截取,也就是字符截取
x = 2 * x - num + (num - x) / 2;
String str2 = s.substring(0, x);
System.out.println("截取" + x + "个字符的字符串是:" + str2);
return;
}
}
}
|
|