溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java如何編寫一個截取字符串的函數(shù)

發(fā)布時間:2022-01-15 13:58:39 來源:億速云 閱讀:108 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“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è)資訊頻道!

向AI問一下細(xì)節(jié)

免責(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)容。

AI