Java通过字节分割字符串

一、题目描述:

  一道Java笔试题。将字符串按给定的字节数进行分割,输出分割后的字符串。要求汉字不能进行拆分,如“a中国”不能拆分成“a+中的一半”。

二、解题思路:

  首先利用String类的substring函数逐一取出字符,然后可以通过将字符转换为字节数组,判断大小并累加至计数器,如满足条件则输出并将计数条件归空。

三、代码:

public class Test{
    public static void main(String[] args) {
        /*思路:利用String类中的substring方法逐一将字符串中的字符取出,将其转换为字节数组后判断其字节数并累加至计数器,当计数器大于等于k时输出并重置计数条件*/
        Test t = new Test();
        t.subString("我爱你中国,我因生在中国而感到骄傲",3);
    }

    public void subString(String str,int k){
        String res = "";
        int count = 0;
        for (int i = 0; i < str.length(); i++) {
            String tmpStr = str.substring(i,i+1);
            res += tmpStr;
            count += tmpStr.getBytes().length;
            if(count >= k){
                System.out.println(res);
                res = "";
                count = 0;
            }
            if(i == str.length()-1 && count < k){
                System.out.println(res);
            }
        }
    }
}

//输出

我爱
你中
国,
我因
生在
中国
而感
到骄

 

 附:Java中字符串和基本数据类型相互转换的方式:

一、字符串转换为基本数据类型

  •   利用包装类的parseXxx(String s)静态方法(除了Character之外的所有包装类都提供了该方法)
  •   利用包装类提供的Xxx(String s)构造器

二、基本数据类型转换为字符串

  利用String.valueOf()方法

     //字符串转换为基本数据类型
        String str = "123";
        int a = Integer.parseInt(str);
        int b = new Integer(str);
        String str2 = "123.456";
        float f = Float.parseFloat(str2);
        float f1 = new Float(str2);
        //基本数据类型转换为字符串
        String ss = String.valueOf(a);
        String ss2= String .valueOf(f);
        String ss3 = a+"";  //此外还有一种更简便的方法
原文地址:https://www.cnblogs.com/chiweiming/p/11828965.html