您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“java如何編寫一個截取字符串的函數”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“java如何編寫一個截取字符串的函數”這篇文章吧。
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; } //用于統計這個字符串中有幾個中文字符 int wordCount = 0; //統一按照gbk編碼來得到他的字節數組,因為不同的編碼字節數組是不一樣的。 byte[] strBytes = str.getBytes("GBK"); //如果只截取一位,而且第一位是中文字符時的處理 if (byteLength == 1) { if (strBytes[0] < 0) { return str.substring(0, 1); } } //字符串中的一個中文會使得wordCount 加兩次 //如果你這個字節取出來的是一個漢字也就是兩個字節當中的一個的話val的值為負數 for (int i = 0; i < byteLength; i++) { int val = strBytes[i]; if (val < 0) { wordCount++; } } //如果傳遞的這個截取的位數沒有截到半個中文上面,那么就按照byteLength - (wordCount / 2個長度進行截取 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取整數 return strlen; }
以上是“java如何編寫一個截取字符串的函數”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。