我以前写过的、你看看吧,也许有用
import java.util.Scanner;
/*
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
但是要保证汉字不被截取半个,如“我ABC”4,应该截取为“我AB”,输入“我ABC汗DEF”,6,应该输出为“我ABC”,而不是“我ABC+汗的半个字”。
*/
public class JieQu
{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("输入要截取的字符:");
String str =sc.nextLine();
System.out.println("输入要截取的长度:");
int num = sc.nextInt();
Substring substr = new Substring(str,num);
substr.splitit();
}
}
class Substring
{
private String str;//要截取的字符
private int bytenum;//截取个数
public Substring(){}
public Substring(String str,int bytenum){
this.str = str;
this.bytenum = bytenum;
}
public void splitit(){
byte[] bt = str.getBytes();
System.out.println("字符串的长度为:"+bt.length);
if(bytenum>1){
if(bt[bytenum]<0){
//调用String方法的默认字符集解码byte 子数组,构造一个新的 String
String substrx = new String(bt,0,--bytenum);
System.out.println(substrx);
}
else{
String substrex = new String(bt,0,bytenum);
System.out.println(substrex);
}
}
else{
if(bytenum==1){
if(bt[bytenum]<0)
{
String substr1=new String(bt,0,++bytenum);
System.out.println(substr1);
}
else
{
String substr2=new String(bt,0,bytenum);
System.out.println(substr2);
}
}
else
{
System.out.println("输入错误!!!请输入大于零的整数:");
}
}
}
}
|