欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中如何判斷中文字符串長度

 更新時(shí)間:2023年05月30日 10:13:51   作者:紅楓憶夢(mèng)  
這篇文章主要介紹了Java中如何判斷中文字符串長度問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Java判斷中文字符串長度

由于Java是基于Unicode編碼的,因此,一個(gè)漢字的長度為1,而不是2。

但有時(shí)需要以字節(jié)單位獲得字符串長度。

例如:

“123Java編程”按字節(jié)長度計(jì)算是11,而按Unicode計(jì)算則是7。

為了獲得11,需要根據(jù)字符的ASCII從頭掃描,來獲得具體的長度。如果是標(biāo)準(zhǔn)的字符,Ascii的范圍是0至255,如果是漢字或其他全角字符,Ascii會(huì)大于255。

因此,可以編寫如下的方法來獲得以字節(jié)為單位的字符串長度。

import java.io.UnsupportedEncodingException;
public class test {
	public static void main(String[] args) throws UnsupportedEncodingException{
		String str = "123java編程";
		System.out.println("length():" + str.length());
		System.out.println("ASCII:" + getStringLength(str));
		System.out.println("正則:" + getStringLengthRegex(str));  
        System.out.println("GBK:" + getStringLengthCode(str,"GBK"));  
        System.out.println("UTF-8:" + getStringLengthCode(str,"UTF-8"));  
	}
	public static int getStringLength(String s){  
        int length = 0;  
        for(int i = 0; i < s.length(); i++)  
        {  
            int ascii = Character.codePointAt(s, i);  
            if(ascii >= 0 && ascii <=255)  
                length++;  
            else  
                length += 2;  
        }  
        return length;  
    }
	/*基本原理是將字符串中所有的非標(biāo)準(zhǔn)字符(雙字節(jié)字符)替換成兩個(gè)標(biāo)準(zhǔn)字符(**,或其他的也可以)。這樣就可以直接例用length方法獲得字符串的字節(jié)長度了*/  
    public static  int getStringLengthRegex(String s) {  
        s = s.replaceAll("[^\\x00-\\xff]", "**");  
        int length = s.length();  
        return length;  
    } 
    /*按特定的編碼格式獲取長度*/  
    public static int getStringLengthCode(String str, String code) throws UnsupportedEncodingException{  
        return str.getBytes(code).length;  
    } 
}
/*
輸出結(jié)果:
length():9
ASCII:11
正則:11
GBK:11
UTF-8:13
*/

Java中判斷字符串真實(shí)長度(中文2個(gè)字符,英文1個(gè)字符)

public class Char_cn {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  String haha = "呵呵呵呵abcd";
  int true_num = String_length(haha);
  System.out.println("true" + true_num);
  int false_num = haha.length();
  System.out.print("flase" + false_num);
 }
 public static int String_length(String value) {
  int valueLength = 0;
  String chinese = "[\u4e00-\u9fa5]";
  for (int i = 0; i < value.length(); i++) {
   String temp = value.substring(i, i + 1);
   if (temp.matches(chinese)) {
    valueLength += 2;
   } else {
    valueLength += 1;
   }
  }
  return valueLength;
 }
}

輸出結(jié)果

true12
false8

判斷字符串真實(shí)長度(中文2個(gè)字符,英文1個(gè)字符)

1、判斷字符串是否為連續(xù)的中文字符(不包含英文及其他任何符號(hào)和數(shù)字):

Regex.IsMatch(“中文”,”^[/u4e00-/u9fa5]”);

2、判斷字符串是否為中文字符串(僅不包含英文但可以包含其他符號(hào)及數(shù)字):

!Regex.IsMatch(“中文”,@”[a-zA-Z]”);

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java實(shí)現(xiàn)的決策樹算法完整實(shí)例

    Java實(shí)現(xiàn)的決策樹算法完整實(shí)例

    這篇文章主要介紹了Java實(shí)現(xiàn)的決策樹算法,簡單描述了決策樹的概念、原理,并結(jié)合完整實(shí)例形式分析了java實(shí)現(xiàn)決策樹算法的相關(guān)操作技巧,代碼中備有較為詳盡的注釋便于理解,需要的朋友可以參考下
    2017-11-11
  • Android?Studio?中Gradle配置sonarqube插件(推薦)

    Android?Studio?中Gradle配置sonarqube插件(推薦)

    Sonarqube作為一個(gè)很實(shí)用的靜態(tài)代碼分析工具,在很多項(xiàng)目中都使用,本文重點(diǎn)給大家介紹Android?Studio?中Gradle配置sonarqube插件的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧
    2022-03-03
  • Filter中獲取傳遞參數(shù)方式(解決post請(qǐng)求參數(shù)問題)

    Filter中獲取傳遞參數(shù)方式(解決post請(qǐng)求參數(shù)問題)

    這篇文章主要介紹了Filter中獲取傳遞參數(shù)方式(解決post請(qǐng)求參數(shù)問題),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Spring boot @ModelAttribute標(biāo)注的實(shí)現(xiàn)

    Spring boot @ModelAttribute標(biāo)注的實(shí)現(xiàn)

    這篇文章主要介紹了Spring boot @ModelAttribute標(biāo)注的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • java實(shí)現(xiàn)播放背景音樂

    java實(shí)現(xiàn)播放背景音樂

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)播放背景音樂,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Java事務(wù)的個(gè)人理解小結(jié)

    Java事務(wù)的個(gè)人理解小結(jié)

    數(shù)據(jù)庫操作的事務(wù)習(xí)慣上就稱為Java事務(wù)
    2013-03-03
  • Spring @Bean注解的使用場(chǎng)景與案例實(shí)現(xiàn)

    Spring @Bean注解的使用場(chǎng)景與案例實(shí)現(xiàn)

    隨著SpringBoot的流行,我們現(xiàn)在更多采用基于注解式的配置從而替換掉了基于XML的配置,所以本篇文章我們主要探討基于注解的@Bean以及和其他注解的使用
    2023-03-03
  • @RunWith(SpringJUnit4ClassRunner.class)報(bào)錯(cuò)問題及解決

    @RunWith(SpringJUnit4ClassRunner.class)報(bào)錯(cuò)問題及解決

    這篇文章主要介紹了@RunWith(SpringJUnit4ClassRunner.class)報(bào)錯(cuò)問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • spring boot 添加admin監(jiān)控的方法

    spring boot 添加admin監(jiān)控的方法

    這篇文章主要介紹了spring boot 添加admin監(jiān)控的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • 在Android系統(tǒng)中解析XML文件的方法

    在Android系統(tǒng)中解析XML文件的方法

    這篇文章主要介紹了在Android系統(tǒng)中解析XML文件的方法,利用Java寫成的XmlPullParser解析器,需要的朋友可以參考下
    2015-07-07

最新評(píng)論