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+""; //此外还有一种更简便的方法