一道面試題
編程:編寫一個截取字符串的函數,輸入為一個字符串和字節數,輸出為按字節截取的字符串。 但是要保證漢字不被截半個,如“我ABC”4,應該截為“我AB”,輸入“我ABC漢DEF”,6,應該輸出為“我ABC”而不是“我ABC+漢的半個”。
代碼如下:
public class SplitString{
String splitString;
int splitByte;
public SplitString(String str,int n){
splitString = str;
splitByte = n;
System.out.println("This String is:" + splitString + "splitbyte" + splitByte);
}
public void split(){
int loopnum;
loopnum = (splitString.length()%splitByte == 0)?(splitString.length()/splitByte):(splitString.length()/splitByte + 1);
for(int i = 1;i <= loopnum; i++){
if(i == loopnum)
System.out.println(splitString.substring((i-1)*splitByte,splitString.length()));
else
System.out.println(splitString.substring((i-1)*splitByte,i*splitByte));
}
}
public static void main(String args[]){
SplitString spstr = new SplitString("這是my javablog,歡迎大家來訪",4);
spstr.split();
}
}
代碼如下:
public class SplitString{
String splitString;
int splitByte;
public SplitString(String str,int n){
splitString = str;
splitByte = n;
System.out.println("This String is:" + splitString + "splitbyte" + splitByte);
}
public void split(){
int loopnum;
loopnum = (splitString.length()%splitByte == 0)?(splitString.length()/splitByte):(splitString.length()/splitByte + 1);
for(int i = 1;i <= loopnum; i++){
if(i == loopnum)
System.out.println(splitString.substring((i-1)*splitByte,splitString.length()));
else
System.out.println(splitString.substring((i-1)*splitByte,i*splitByte));
}
}
public static void main(String args[]){
SplitString spstr = new SplitString("這是my javablog,歡迎大家來訪",4);
spstr.split();
}
}