一、題目描述:
一道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+""; //此外還有一種更簡便的方法