您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“java如何編寫一個截取字符串的函數(shù)”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“java如何編寫一個截取字符串的函數(shù)”這篇文章吧。
java:
public class StringSplit { public static void main(String[] args) throws Exception { String ss = "a很bc你好"; System.out.println(splitString(ss, 1)); } public static String splitString(String str, int byteLength) throws Exception { //如果字符串為空,直接返回 if(str == null || "".equals(str)) { return str; } //用于統(tǒng)計(jì)這個字符串中有幾個中文字符 int wordCount = 0; //統(tǒng)一按照gbk編碼來得到他的字節(jié)數(shù)組,因?yàn)椴煌木幋a字節(jié)數(shù)組是不一樣的。 byte[] strBytes = str.getBytes("GBK"); //如果只截取一位,而且第一位是中文字符時的處理 if (byteLength == 1) { if (strBytes[0] < 0) { return str.substring(0, 1); } } //字符串中的一個中文會使得wordCount 加兩次 //如果你這個字節(jié)取出來的是一個漢字也就是兩個字節(jié)當(dāng)中的一個的話val的值為負(fù)數(shù) for (int i = 0; i < byteLength; i++) { int val = strBytes[i]; if (val < 0) { wordCount++; } } //如果傳遞的這個截取的位數(shù)沒有截到半個中文上面,那么就按照byteLength - (wordCount / 2個長度進(jìn)行截取 if (wordCount % 2 == 0) { return str.substring(0, (byteLength - (wordCount / 2))); } //否則,我們就舍棄多出來的這一位 所以 -1 return str.substring(0, (byteLength - (wordCount / 2) - 1)); } }
js
function isChinese(str){ //判斷是不是中文 var reCh=/[u00-uff]/; return !reCh.test(str); } function lenStat(target){ var strlen=0; //初始定義長度為0 var txtval = $.trim(target.val()); for(var i=0;i<txtval.length;i++){ if(isChinese(txtval.charAt(i))==true){ strlen=strlen+2;//中文為2個字符 }else{ strlen=strlen+1;//英文一個字符 } } strlen=Math.ceil(strlen/2);//中英文相加除2取整數(shù) return strlen; }
以上是“java如何編寫一個截取字符串的函數(shù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。