package com.itcast.wang;
/*
*
* 1、编写一个截取字符串的函数,输入为一个字符串和字节数,
* 输出为按字节截取的字符串。但是要保证汉字不被截半个,
* 如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",
* 6,应该输出为"我ABC"而不是"我ABC+汉的半个"。
*
* */
public class Test10 {
public static void main(String[] args){
GetSubstring gsb=new GetSubstring();
String s="你××× is good boy";
System.out.println(gsb.getSubstring(s,122));
}
}
class GetSubstring{
public String getSubstring(String s,int i){
byte[] bys=new byte[i];
byte[] by=s.getBytes();
if(i>by.length){
// System.out.println("您输入的值已经大于这个字符串的长度了 后面的不能截取,请您重新运行程序:");
return "您输入的值已经大于这个字符串的长度了\r 后面的不能截取,\r请您重新运行程序:";
}
// System.out.println(Arrays.toString(by));
//先找出从0到i(不包括i)之间有多少负数
int count=0;
for(int x=0;x<i;x++){
if(by[x]<0) count++;
}
//判断负数的个数,如果能被整除,就取到i-1否则取到i-2
int y;
if(count%2==0)
y=i-1;
else y=i-2;
//找到我们想要的字节赋值到另一个数组
for(int j=0;j<=y;j++){
bys[j]=by[j];
}
return new String(bys);
}
} |