package test;
public class TestStringSplit {
public static void main(String[] args) {
StringSplit("我ABC汉DEF", 6);
}
/**
* 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
* 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,
* 应该输出为“我ABC”而不是“我ABC+汉的半个”
* @param str 字符串
* @param n 字节数
*/
public static void StringSplit(String str, int n) {
StringBuffer sb = new StringBuffer(str);
for (int i = 0; i < str.length() && i + 1 < str.length(); i++) {
if (sb.substring(i, i + 1).matches("[\\u4e00-\\u9fbb]+")) {
// if (sb.substring(i, i + 1).getBytes().length > 1) {
n -= 2;
} else {
n--;
}
if (n <= 0) {
System.out.println(sb.substring(0, i));
System.out.println(i + " " + n);
break;
}
}
}
}
Java笔试之按字节截取字符串
最新推荐文章于 2023-09-11 09:22:11 发布