一、题目描述:
一道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); } } } }
//输出
我爱
你中
国,
我因
生在
中国
而感
到骄
傲