- public class Test2
- {
- public static void splitIt(String str, int byteNum)
- {
- byte bt[] = str.getBytes(); //将字符串以字节数组形式存储
- //字符串中的中文以两个字节元素的形式存在(该数据为负),字母以一个字节元素的形式存在(该数据为正)
- /* 如果你不懂,可以去掉注释遍历一下该数组
- for(int i=0;i<bt.length;i++){
- System.out.println("bt["+i+"]="+bt[i]);
- }
- */
-
- if (byteNum >= 1 ) //判断切割位置
- {
- if (bt[byteNum] < 0 ) //当要切开的位置数据为负数,说明要打印的这个数为中文
- { //则--byteNum,不要打印该字
- String substrx = new String(bt, 0 , -- byteNum);
- System.out.println(substrx);
- } else //否则为正,即最后一个打印的数据为字母,打印
- {
- String substrex = new String(bt, 0 ,byteNum);
- System.out.println(substrex);
- }
- } else
- {
- System.out.println( " 输入错误!!!请输入大于零的整数: " );
- }
- }
- public static void main(String args[])
- {
- String str = "HM程j序员" ;
- int num = 6 ;
-
- splitIt(str,num);
- }
-
- }
复制代码
我看了一下网上的代码,改了一下,你有什么不懂的再问我 |