Java 判断中文字符串长度
来源:互联网 发布:stc单片机烧录器 编辑:程序博客网 时间:2024/06/05 05:14
package cn.com.songjy.test; import java.io.UnsupportedEncodingException; /** * 在Java中按字节获得字符串长度的两种方法 * */ public class App { public static void main( String[] args ) throws UnsupportedEncodingException { String str = "只"; System.out.println(getWordCount(str)); System.out.println(getWordCountRegex(str)); System.out.println(getWordCountCode(str,"GBK")); System.out.println(getWordCountCode(str,"UTF-8")); } /*由于Java是基于Unicode编码的,因此,一个汉字的长度为1,而不是2。 * 但有时需要以字节单位获得字符串的长度。例如,“123abc长城”按字节长度计算是10,而按Unicode计算长度是8。 * 为了获得10,需要从头扫描根据字符的Ascii来获得具体的长度。如果是标准的字符,Ascii的范围是0至255,如果是汉字或其他全角字符,Ascii会大于255。 * 因此,可以编写如下的方法来获得以字节为单位的字符串长度。*/ public static int getWordCount(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; } /*基本原理是将字符串中所有的非标准字符(双字节字符)替换成两个标准字符(**,或其他的也可以)。这样就可以直接例用length方法获得字符串的字节长度了*/ public static int getWordCountRegex(String s) { s = s.replaceAll("[^\\x00-\\xff]", "**"); int length = s.length(); return length; } /*按特定的编码格式获取长度*/ public static int getWordCountCode(String str, String code) throws UnsupportedEncodingException{ return str.getBytes(code).length; } }
汉字中有生僻字:“掱”,结果计算出长度为2、UTF-8 长度3。
0 0
- java 判断中文字符串长度
- java 判断中文字符串长度
- java 判断中文字符串长度
- java判断中文字符串长度
- Java 判断中文字符串长度
- Java判断字符串长度
- java 判断含有中文的字符串的长度
- java 判断含有中文的字符串的长度
- java 判断含有中文的字符串的长度
- java 判断含有中文的字符串的长度
- java 判断含有中文的字符串的长度
- java 判断含有中文的字符串的长度
- java 判断含有中文的字符串的长度
- 用js判断中文字符串的长度
- 如何判断含有中文的字符串长度
- Java 中文字符串长度问题
- PHP判断中文字符串的长度和字节长度
- PHP判断中文字符串的长度和字节长度
- 第四十三章 SpringBoot配置Servlet容器
- MySql 5.7.14 服务没有报告任何错误的解决方法
- Activity和Fragment之间传递数据的方法
- 第四十四章 SpringBoot使用Jetty服务器
- Unity结合C++开发服务器实现多人游戏(六)
- Java 判断中文字符串长度
- ognl.SimpleNode.isSequence(Lognl/OgnlContext;)Z
- A+B Problem
- [css 揭秘]:CSS编码技巧
- Google Chrome修改网页背景颜色的办法
- Maven的pom.xml文件详解------The Basics
- Android<View的工作原理以及自定义View的方法>
- 博客"未来最重要的三个能力 "学习心得
- wireless-tools源码分析-iwconfig