一个汉字占两个字节,一个字母一个字节,要求字符串的中文不能出现乱码,如(“我ABC,4)应该截为,"我AB",(”我ABC汉DEF“,6)应该输出”我ABC汉“不能输入半个”汉“。
import java.util.Scanner; class Csplit { static String go(String str,int n) { int bytes=0; for(int i=0;i<str.length();i++) { char c=str.charAt(i); if(c<256) { bytes+=1; if(bytes==n) return str.substring(0,i+1); } else { bytes+=2; if(bytes==n) return str.substring(0,i+1); if(bytes-1==n) return str.substring(0,i); } } return str; } public static void main(String[] args) { System.out.println("请输入字符串:"); Scanner sc=new Scanner(System.in); String str=sc.next(); System.out.println("请输入字节数:"); int n=sc.nextInt(); System.out.println(go(str,n)); } }