1. 程式人生 > >Java 計算含有漢字字串長度

Java 計算含有漢字字串長度

package com.youku.paycenter.admin.subGate.service.impl;

import java.io.UnsupportedEncodingException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TestString
{

public static final String CHINESE_REG_EXP = "[\u4e00-\u9fa5]";

public static void main(String[] args) throws UnsupportedEncodingException
{
    String s = "故人西辭黃鶴樓,煙花三月下揚州;孤帆遠影碧空盡,唯見長江天際流。故人西辭黃鶴樓,煙花三月下揚州;孤帆遠影碧空盡,唯見長江天際流。故人西辭黃鶴樓,煙花三月下揚州;孤帆遠影碧空盡,唯見長江天際流。故人西辭黃鶴樓,煙花三月下揚州;孤帆遠影碧空盡,唯見長江天際流。故人西辭黃鶴樓,煙花三月下揚州;孤帆遠影碧空盡,唯見長江天際流。故人西辭黃鶴樓,煙花三月下揚州;孤帆遠影碧空盡,唯見長江天際流。故人西辭黃鶴樓,abc";

    if(isChineseChar(s))
    {
        char[] c_array = s.toCharArray();

        String c_string = null;

        byte[] c_byte_array;

        int chineseCount = 0;

        int normalCount = 0;

        for (char c : c_array)
        {
            c_string = Character.toString(c);

            c_byte_array = c_string.getBytes("UTF-8");

            if(c_byte_array.length>1)
            {
                chineseCount++;
            }
            else
            {
                normalCount++;
            }
        }

        System.out.println(chineseCount+normalCount);
    }
}

public static boolean isChineseChar(String str)
{

    if (str == null) return false;

    boolean temp = false;
    Pattern p = Pattern.compile(CHINESE_REG_EXP);
    Matcher m = p.matcher(str);
    if (m.find())
    {
        temp = true;
    }
    return temp;
}

}

相關推薦

Java 計算含有漢字字串長度

package com.youku.paycenter.admin.subGate.service.impl; import java.io.UnsupportedEncodingException; import java.util.regex.Match

c/c++整理--程式設計計算含有漢字字串長度

編寫gbk_strlen函式,計算含有漢字的字串長度,漢字作為一個字元處理;已知:漢字編碼為雙位元組,其中首位元組<0,尾位元組在0~63以外(如果一個位元組是-128~127)。 #inclu

java 計算包含中文字串的真實長度

public static int getRealLength(String str) { int m = 0; char arr[] = str.toCharArray(); for (int i = 0; i < arr.length; i++) { char c = arr[i

計算中英文混合字串長度,中文算兩個字元

獲取中英文字串長度是一個比較常用的功能,比如限制一個使用者暱稱、文章標題等的長度,一般從技術的角度考慮,不同的編碼中文所佔的位元組數不同,但從使用者的角度考慮他們根本不知道什麼是字符集,通常的習慣是一箇中文按兩個英文算。之前在網上看到的一個演算法是:$strlen = (s

ASP如何計算中英文混合字串長度和擷取字串 .

計算中英文混合字串的長度: function getStringLen(str) on error resume next       dim l,c,i,tl=len(str)t=lfor i=1 to lc=asc(mid(str,i,1))if c>=128

Java 帶轉義字元字串長度

public class Test { public static void main(String[] args) { String str1 = "\n\r\\"; System.out

iOS計算中英文混合字串長度的方法

-(NSUInteger) unicodeLengthOfString: (NSString *) text {NSUInteger asciiLength = 0;for (NSUInteger i = 0; i < text.length; i++)

python中求漢字字串長度以及預設編碼與解碼格式設定

print(len('你好啊')) 結果為 3 一般漢字在uicode編碼格式中,一個漢字對應長度為1 在utf-8編碼格式中,一個漢字對應長度為3 我在剛開始寫的時候,在python3環境下,列表value裡,用的是:len(value[i].decode('u

利用正則表示式計算含有中文的字串長度

using System;using System.Text.RegularExpressions; namespace LangZi{    /**//// <summary>    /// StringHelper 的摘要說明。    /// </su

字元與字串中的'\0', '0', 0;strlen()函式求字串長度計算方法(sizeof()驗證)

如下字元陣列or字串,用strlen函式求長度各是多少? char * p = “abc” 與 char a[] = "abc"兩種形式並不同; char * str1 = "abc"; char * str2 = "ab\

計算字串長度

1.strlen strlen所作的僅僅是一個計數器的工作,它從記憶體的某個位置(可以是字串開頭,中間某個位置,甚至是某個不確定的記憶體區域)開始掃描,直到碰到第一個字串結束符’\0’為止,然後返回計數器值(長度不包含’\0’) $title = 'üöä';

java 得到無重複的最長字串長度

給定一個字串str,返回str的最長無重複字串的長度。 例如:      str="abc",則返回3.      str="aabcd",則返回4. 具體程式碼實現如下: package Test; import java.util.HashMap; impor

Shell指令碼中計算字串長度的幾種方法

1:wc -L wc -l (小寫)是獲取當前字串內容的行數,wc -L (大寫)可以獲取到當前行的長度,因此對於單獨行的字串可以用這個簡單的方法獲取。 $ str="123.?+ abc" $ echo "$str" |wc -L 10 2: expr lengt

計算字串長度字串賦值

以下全部討論char,wchar_t的請自行查閱msdn.以下函式的更詳細資訊也請查閱msdn 一:計算字串長度 1.sizeof: sizeof unary-expression sizeof (type-name) 示例程式碼: int a[]={0,1,

計算最長的字串長度

輸入n (n<10)個字串,輸出其中最長字串的有效長度。要求自定義函式 Int max_len ( char *s[],int n),用於計算有n個元素的指標陣列s中最長的字串的長度。 法一:思路:設定一個指標陣列與一個二維陣列,使指標陣列指向二維陣列#include<stdio.h>#i

字元與字串中的'\0', '0', 0;strlen()函式求字串長度計算方法(sizeof()驗證)

如下字元陣列or字串,用strlen函式求長度各是多少? char * p = “abc” 與 char a[] = "abc"兩種形式並不同; char * str1 = "abc"; char *

(函式)計算最長的字串長度

6-2 計算最長的字串長度 (10 分) 本題要求實現一個函式,用於計算有n個元素的指標陣列s中最長的字串的長度。 函式介面定義: int max_len( char *s[], int n ); 其中n個字串儲存在s[]中,函式max_len應返回其中最長字串的長度。 裁判測試程式

java URL中含有漢字轉碼格式

傳入url即可實現 public static String toUtf8String(String s) { StringBuffer sb = new StringBuffer();

[Linux]如何在Shell指令碼中計算字串長度

有時在Linux作業系統中需要計算某個字串的長度,通過查詢資料整理了下目前Shell中獲取字串的長度的多種方法,在這裡分享給大家,方法如下: 方法1: 使用wc -L命令 wc -L可以獲取到當前行的長度,因此對於單獨行的字串可以用這個簡單的方法獲取,另外wc -l則是獲取當前字串內容的行數。 [c

Python2中print字串含有漢字無法正常顯示

demo1 Ubuntu16,Python2,且安裝過中文語言什麼的。   #!usr/bin/python # -*- coding: utf-8 -*- a = "我就是中文啊" print("a:",a)1234 輸出就是: