Java实现判断中文字符串长度
由于Java是基于Unicode编码的,因此,一个汉字的长度为1,而不是2。但有时需要以字节单位获得字符串长度。例如:“123Java编程”按字节长度计算是11,而按Unicode计算则是7。为了获得11,需要根据字符的ASCII从头扫描,来获得具体的长度。如果是标准的字符,Ascii的范围是0至255,如果是汉字或其他全角字符,Ascii会大于255。 因此,可以编写如下的方法来获得以字节为单位的字符串长度。
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; }/*基本原理是将字符串中所有的非标准字符(双字节字符)替换成两个标准字符(**,或其他的也可以)。这样就可以直接例用length方法获得字符串的字节长度了*/ 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; }
}/*
输出结果:length():9
ASCII:11
正则:11
GBK:11
UTF-8:13
*/
Java实现判断中文字符串长度相关推荐
- java 字符长度 中文_java判断中文字符串长度的简单实例
话不多说,上代码: /** * 获取字符串的长度,如果有中文,则每个中文字符计为2位 * @param value 指定的字符串 * @return 字符串的长度 */ public static i ...
- java判断字符长度_java判断中文字符串长度的简单实例
话不多说,上代码: /** * 获取字符串的长度,如果有中文,则每个中文字符计为2位 * @param value 指定的字符串 * @return 字符串的长度 */ public static i ...
- java判断字符串长度_java判断中文字符串长度的简单实例
/** * 获取字符串的长度,如果有中文,则每个中文字符计为2位 * @param value 指定的字符串 * @return 字符串的长度 */ public static int length( ...
- js判断中文字符串长度和js截取中文字符串
//获取字符串长度String.prototype.strLen = function() { var len = 0; for (var i = 0; i < this.length; i++ ...
- Java正则判断中文字符串句型_NLP中文句子类型判别和分类实现
目录 一.中文句子类型主要类别 1.陈述句(statement) 主语为首(subject_front),例:大家对这件事都很热心 主题为首(theme_front),例:红绿灯,真好玩 复合句(co ...
- php 全角字符正则表达式,正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度...
判断是否存在中文和全角字符 str.match(/[^\x00-\xff]/ig) 判断包含中文字符串长度 aMatch=str.match(/[^\x00-\x80]/g); str.length+ ...
- PHP判断中文字符串的长度和字节长度
PHP对中文字符串的处理一直困扰于刚刚接触PHP开发的新手程序员.下面简要的剖析一下PHP对中文字符串长度的处理: PHP自带的函数如strlen().mb_strlen()都是通过计算字符串所占字节 ...
- java 计算包含中文字符串的真实长度
public static int getRealLength(String str) {int m = 0;char arr[] = str.toCharArray();for (int i = 0 ...
- Java:判断一个字符串中是否存在另一个字符子串以及判断一个字符串中是否存在指定字符
Java:判断一个字符串中包含指定字符子串,判断一个字符串中存在指定字符 字符串的contains方法可以判断一个字符串中是否存在另一个字符子串,示例如下 String Str = "Hel ...
- [转]php获取含中文字符串长度
本文转载自:http://vtrtbb.iteye.com/blog/607091 PHP计算字符串长度,包括计算英文.GBK.UTF-8多种字符集下PHP如何计算字符串长度.英文字符串长度 strl ...
最新文章
- android studio文件风格,Android Studio构建风格 – 如何拥有不同风格的相同源文件
- TCP校验和的设计与实现
- PMCAFF微课堂|前codefollow运营女神:深剖女性社群电商的心理需求和特征
- wxWidgets:wxTreebook类用法
- win10系统的定位服务器,Win10系统无法开启定位功能的原因及解决方法
- git生成SSH-Key
- Sklearn参数详解—GBDT
- 聊聊2019年的web前端
- java多态 覆盖_Java ------ 继承、方法覆盖、多态
- MAC 安装brew raw.githubusercontent.com port 443: Connection refused 本人亲自认证过,踩过多种方案,最终认证的解决方案
- 谷歌游览器插件html5,谷歌丢弃浏览器插件,全面开发html5
- 隐式类型转换与转换操作符operator T
- 【实践】微博推荐算法实践与机器学习平台演进.pdf(附PPT下载链接)
- Unity加载模块深度解析(网格篇)
- ES6、7学习笔记(尚硅谷)-2-let和const
- 类 QQ IM 通讯软件开发实战
- hdu3709——数位dp+枚举
- leetcode寻找重复数
- windows下网络测试工具
- 华三防火墙配置IPSec隧道