`
sundayrong
  • 浏览: 12379 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

java 求字符串中汉字个数

    博客分类:
  • java
阅读更多
java用的是Unicode 编码,char 型变量的范围是0-65535 无符号的值,可以表示 65536个字符,实际中,我们希望判断一个字符是不是汉字,或者一个字符串中汉字字符的个数。

String str1 = "aaa";
String str2= "啊啊啊";
System.out.println(String(s1).length());
System.out.println( String(s2).length());


OUTPUT:
3
3

byte b1[]=str1.getBytes();
byte b2[]=str2.getBytes();
System.out.println(b1.length);
System.out.println(b2.length);

OUTPUT:
3
6

字符串里如果有双字节的字符java就把每个字符都按双字节编码,如果都是单字节的字符就按单字节编码。
于是:通过看String(s1).length()与b1.length是否相等来判断字符串中是否有汉字
      通过计算String(s1).length()与b1.length的差值来得到汉字的个数

当然这是基于字符串中仅有中英文及数字的假设的,其他国家的字符暂不考虑。

public int chineseNums(String str){
byte b[]=str.getBytes();
int byteLength=b.length;
int strLength=str.length();
return byteLength-strLength;
}


下午运行了几个简单的例子,都没有什么问题,但还需要进一步测试考证。

1
1
分享到:
评论
3 楼 chenjie100 2011-01-25  
linux下运行就出错了,因为utf-8下getBytes是3个字节
2 楼 langxiashahai 2010-06-30  
特殊汉字呢?有的汉字不止占两个字节哦
1 楼 zhq426 2008-10-19  
顶。。。。

相关推荐

    java将字符串中数字转换为中文大写,在输出字符串

    java将字符串中数字转换为中文大写,在输出字符串java将字符串中数字转换为中文大写,在输出字符串java将字符串中数字转换为中文大写,在输出字符串java将字符串中数字转换为中文大写,在输出字符串java将字符串中数字...

    java 字符串中文判断

    至于判断字符串中是否有连续的中文字符,我们可以稍微修改上述代码,添加一个额外的条件来检查当前字符和下一个字符是否都是中文。这里是一个可能的实现: ```java public static boolean hasConsecutiveChinese...

    统计字符串中汉字、字母、数字、英文标点、中文标点个数

    标题提到的"统计字符串中汉字、字母、数字、英文标点、中文标点个数"是一个典型的字符串分析问题,它涉及到对输入字符串进行逐个字符检查,识别并计数不同类型的字符。这个问题可以通过多种编程语言来解决,例如...

    java中截取带汉字的字符串

    ### Java中截取带汉字的字符串 在Java编程语言中,处理包含中文字符的字符串时,经常遇到的一个问题是如何正确地截取这些字符串。如果直接按照字节(byte)来进行分割,很容易导致中文字符被截断一半,从而形成乱码。...

    java 中字符串只中英数字混合需要分割的解决办法

    这个方法用来处理java中可能有一些特别的需要,一大串中英文混合,需要中间截断或是中英中间添加一些特别的标识,调用这个方法 第一个参数是要处理的字符串,第二个是要在中英字符中间插入的字符。调用就可以得到想...

    java字符串类型数字设置千分位分隔

    在Java编程中,处理数字时,我们经常需要将数字格式化为包含千分位分隔符的字符串,以便于人类阅读。例如,一个大数字123456789.012可能需要转化为"123,456,789.012"的形式。这个过程可以通过使用`DecimalFormat`类...

    java 判断字符串是否是中文

    java 判断字符串是否是中文 共总结了6种方法。。。。

    JAVA中汉字字符转化为英文字符

    - 返回一个由汉字转换后的英文字符组成的字符串。 - **实现细节**: - 使用 `getBytes()` 方法获取字符串的字节数组。 - 遍历字节数组,检查每个字节是否小于0(即非ASCII字符)。 - 如果是负数,则使用位运算 `...

    JAVA 统计字符串中中文,英文,数字,空格,特殊字符的个数

    在日常的编程工作中,我们经常需要统计字符串中不同类型的字符个数,例如中文、英文、数字、空格、特殊字符等。在 Java 中,我们可以使用 Unicode 编码来判断字符类型,然后进行统计。在这篇文章中,我们将介绍如何...

    java中文排序,数字字母汉字排序

    我们可以将每个字符串转换为它们的拼音表示(对于中文)或保持原样(对于数字和字母),然后按照指定的顺序进行比较。一种常见的方式是使用第三方库,如`pinyin4j`,它可以帮助我们将中文字符转换为拼音。 以下是...

    java朗读中文字符串.zip

    这个压缩包"java朗读中文字符串.zip"很可能包含了一个或多个示例程序,演示如何利用Java进行文本到语音(Text-to-Speech, TTS)转换,特别是针对中文字符串。在Java中,这种功能通常依赖于Java的Text-to-Speech API...

    关于java按字节截取带有汉字的字符串的解法

    在Java编程语言中,处理带有汉字的字符串时,由于汉字占据多个字节,按照字节进行截取可能会导致汉字被不完整地分割,从而产生乱码。为了解决这个问题,我们需要理解Unicode编码以及如何在Java中正确处理多字节字符...

    Java编写的非常有用的方法,文字中提取中文字符

    为了方便你直接使用这些功能,你可以将以上代码保存到名为`Java取得字符串中汉字字符串.java`和`判断是否为空白字符串.java`的两个Java文件中。在你的项目中导入并使用这些类,它们将帮助你有效地处理字符串中的汉字...

    Java 正则表达式判断字符串是否包含中文

    通过本文的学习,我们不仅了解了如何使用 Java 的正则表达式来判断一个字符串中是否包含中文字符,还深入了解了 Java 中正则表达式的相关 API 和基本原理。这对于从事 Java 开发的技术人员来说是非常实用且必要的...

    java中根据汉字字符串获取拼音首字母工具类

    java中根据汉字字符串获取拼音首字母工具类

    中文数字转成阿拉伯数字 java 实现

    在Java编程语言中,将中文数字转换为阿拉伯数字是一个常见的需求,特别是在处理中文文本数据时。这个场景下,我们有一个名为“中文数字转成阿拉伯数字 java 实现”的压缩包,包含了一个实现此功能的Java包和一个单元...

    java字符串的各种编码转换

    ### Java字符串的编码转换 在Java中,处理不同字符集之间的字符串转换是一项常见任务。尤其是在处理国际化应用时,理解并掌握各种字符编码格式变得尤为重要。下面将介绍几种常见的字符编码格式以及如何在Java中实现...

    java 计算字符串相似度

    java 计算字符串相似度

    截取如下字符串“java程序教程”的前5个字节,字符串应该为“java程”,截取前6个字符,字符串也应该为“java程”,程序实现之.

    题目中提到“截取前5个字节, 字符串应该为‘java程’”,意味着我们需要理解,在UTF-8编码格式下,英文字符通常占用1个字节,而中文字符则占用3个字节。因此,实际上,从“java程序教程”中截取前5个字节,得到的...

    java编写一个截取字符串的函数,输入为一个字符串和字节数.docx

    Java 字符串截取函数 ...本例中,我们实现了一个 Java 字符串截取函数,该函数可以截取指定字节的字符串,并保证汉字不被截半个。该函数使用 `substring` 方法来实现字符串截取,并且可以应用于各种字符串处理场景。

Global site tag (gtag.js) - Google Analytics