面試題之擷取字串

2021-09-11 14:37:23 字數 892 閱讀 3516

這幾天刷面試題碰到這樣乙個問題: 

編寫乙個擷取字串的函式,輸入為乙個字串和位元組數,輸出為按位元組擷取的字串,但要保證漢字不被擷取半個,如「我abc」,4,應該擷取「我ab」,輸入「我 abc 漢 def」,6,應該輸出「我 abc」,而不是「我 abc+漢的半個」。

public string tointerceptstring1(string s, int len) 

return new string(buf, 0, len);

}

於是自己又想了另外一種辦法,如下:

public string tointerceptstring2(string s, int len) 

if(len > s.getbytes().length)

// 判斷系統編碼,

int n = systemencode(s);

byte buf = s.getbytes();

int count = 0;

for (int i = 0; i < len; i++)

// 如果為n(乙個漢字所佔位元組),就賦值為0

if (count == n)

// 如果到達指定的len,且count小於n,就捨棄這幾個位元組

if (i == len - 1 && count < n)

}return new string(buf, 0, len);

}/**

* 判斷系統編碼,並返回當前編碼的乙個漢字所佔位元組

* * @param s

* @return

*/private int systemencode() else

}

這樣就可以了,看來還是要自己多想想,多寫寫。

擷取字串

static function blogsummary str,len 100 else out valtmp break tmp tmpstr outlen mb strlen valtmp,charset out val.rs 2 key right rs 2 key unset rs tags...

擷取字串

擷取字串一般使用string類的substring方法。public string substring int beginindex 返回該字串子串的新字串。子字串開始於指定的位置並且擴充套件到該字串的結尾。public string substring int beginindex,int end...

擷取字串

題目要求 編寫乙個擷取字串的程式,輸入為乙個字串和乙個位元組數字,輸出為按位元組擷取的字串,保證漢字不被擷取半個,如 eg 我abc 4 擷取 我ab eg 我abc漢def 6 擷取 我abc 而不是 我abc 漢 的半個解題思路 那麼擷取字串時考慮當前字元是否為漢字的一部分,如果不是漢字則計數位...