一 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,要保证汉字不被截取半个,
如“我ABC”,4 ,应该截取"我AB",输入"我ABC汉DEF",6,应该输出"我ABC",而不是“我ABC+汉字的半个”。
public static void main(String[] args) {
String str = "我ABC汉";
int num = trim(str.getBytes(),6);
System.out.println(num);
System.out.println(str.substring(0,num));
}
public static int trim(byte[] buf ,int n) {
int num = 0;
boolean ifChineseHalf = false;
for(int i = 0;i < n;i++) {
if(buf[i] < 0&&!ifChineseHalf) {
ifChineseHalf = true;
}else {
num++;
ifChineseHalf = false;
}
}
return num;
}
二 一个整数,大于0,不用循环和本地变量,按照n,2n,4n,8n顺序递增,当值大于5000时,把值按照顺序打印出来,
例如: n =1237 ,输出为1237,2474,4948,9896,9896,4948,2474,1237
public static void doubleNum(int n) {
System.out.println(n);
if(n <= 5000)
doubleNum(n*2);
System.out.println(n);
}