java判斷中文字符串長度的簡單實(shí)例
更新時(shí)間:2017年01月22日 09:41:37 投稿:jingxian
下面小編就為大家?guī)硪黄猨ava判斷中文字符串長度的簡單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
話不多說,上代碼:
/** * 獲取字符串的長度,如果有中文,則每個(gè)中文字符計(jì)為2位 * @param value 指定的字符串 * @return 字符串的長度 */ public static int length(String value) { int valueLength = 0; String chinese = "[\u0391-\uFFE5]"; /* 獲取字段值的長度,如果含中文字符,則每個(gè)中文字符長度為2,否則為1 */ for (int i = 0; i < value.length(); i++) { /* 獲取一個(gè)字符 */ String temp = value.substring(i, i + 1); /* 判斷是否為中文字符 */ if (temp.matches(chinese)) { /* 中文字符長度為2 */ valueLength += 2; } else { /* 其他字符長度為1 */ valueLength += 1; } } return valueLength; } /** * 得到一個(gè)字符串的長度,顯示的長度,一個(gè)漢字或日韓文長度為2,英文字符長度為1 * @param String s 需要得到長度的字符串 * @return int 得到的字符串長度 */ public static int length(String s) { if (s == null) return 0; char[] c = s.toCharArray(); int len = 0; for (int i = 0; i < c.length; i++) { len++; if (!isLetter(c[i])) { len++; } } return len; } /** * 得到一個(gè)字符串的長度,顯示的長度,一個(gè)漢字或日韓文長度為1,英文字符長度為0.5 * @param String s 需要得到長度的字符串 * @return int 得到的字符串長度 */ public static double getLength(String s) { double valueLength = 0; String chinese = "[\u4e00-\u9fa5]"; // 獲取字段值的長度,如果含中文字符,則每個(gè)中文字符長度為2,否則為1 for (int i = 0; i < s.length(); i++) { // 獲取一個(gè)字符 String temp = s.substring(i, i + 1); // 判斷是否為中文字符 if (temp.matches(chinese)) { // 中文字符長度為1 valueLength += 1; } else { // 其他字符長度為0.5 valueLength += 0.5; } } //進(jìn)位取整 return Math.ceil(valueLength); } 根據(jù)長度截取內(nèi)容,區(qū)分中英文: /** * 截取字符長度,區(qū)分中英文 * * @param abc 字符串內(nèi)容 * @param len 截取長度 * @return */ public static String subStr(String abc, int len) { if (TextUtils.isEmpty(abc) || len <= 0) return ""; StringBuffer stringBuffer = new StringBuffer(); int sum = 0; char[] chars = abc.toCharArray(); for (int i = 0; i < chars.length; i++) { if (sum >= (len * 3)) { break; } char bt = chars[i]; if (bt > 64 && bt < 123) { stringBuffer.append(String.valueOf(bt)); sum += 2; } else { stringBuffer.append(String.valueOf(bt)); sum += 3; } } return stringBuffer.toString(); }
以上這篇java判斷中文字符串長度的簡單實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中的for循環(huán)結(jié)構(gòu)及實(shí)例
這篇文章主要介紹了Java中的for循環(huán)結(jié)構(gòu)及實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01詳解springboot+atomikos+druid?數(shù)據(jù)庫連接失效分析
本文主要介紹了springboot+atomikos+druid?數(shù)據(jù)庫連接失效分析,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02Java使用IO流實(shí)現(xiàn)音頻的剪切和拼接
這篇文章主要為大家詳細(xì)介紹了Java使用IO流實(shí)現(xiàn)音頻的剪切和拼接,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06SpringBoot + Spring Cloud Consul 服務(wù)注冊(cè)和發(fā)現(xiàn)詳細(xì)解析
這篇文章主要介紹了SpringBoot + Spring Cloud Consul 服務(wù)注冊(cè)和發(fā)現(xiàn),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07SpringBoot實(shí)現(xiàn)OneDrive文件上傳的詳細(xì)步驟
這篇文章主要介紹了SpringBoot實(shí)現(xiàn)OneDrive文件上傳的詳細(xì)步驟,文中通過代碼示例和圖文講解的非常詳細(xì),對(duì)大家實(shí)現(xiàn)OneDrive文件上傳有一定的幫助,需要的朋友可以參考下2024-02-02