java 中英文长度_Java 计算中英文长度的若干种方法
在项目开发中经常碰到到输入字符的校验,特别是中英文混合在一起的校验。而为了满足校验的需求,有时需要计算出中英文的长度。
本文将通过几种常用的方法实现长度的计算:
import java.io.UnsupportedEncodingException;
/**
* 中英文校验的处理
* @author a123demi
*
*/
public class EnChValidate {
public static void main(String[] args){
String validateStr= "中英文校验abcde接口ii";
int bytesStrLength = getBytesStrLength(validateStr);
int chineseLength = getChineseLength(validateStr);
int regexpLength = getRegExpLength(validateStr);
System.out.println("getBytesLength:" + bytesStrLength + ",chineseLength:" + chineseLength +
",regexpLength:" + regexpLength);
}
/**
* 根据字符编码 字节数生成一个临时的字符串
* @param validateStr
* @return
*/
public static int getBytesStrLength(String validateStr){
String tempStr = "";
try {
tempStr = new String(validateStr.getBytes("gb2312"),"iso-8859-1");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return tempStr.length();
}
/**
* 获取字符串的长度,如果有中文,则每个中文字符计为2位
*
* @param validateStr
* 指定的字符串
* @return 字符串的长度
*/
public static int getChineseLength(String validateStr) {
int valueLength = 0;
String chinese = "[\u0391-\uFFE5]";
/* 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1 */
for (int i = 0; i < validateStr.length(); i++) {
/* 获取一个字符 */
String temp = validateStr.substring(i, i + 1);
/* 判断是否为中文字符 */
if (temp.matches(chinese)) {
/* 中文字符长度为2 */
valueLength += 2;
} else {
/* 其他字符长度为1 */
valueLength += 1;
}
}
return valueLength;
}
/**
* 利用正则表达式将每个中文字符转换为"**"
* 匹配中文字符的正则表达式: [\u4e00-\u9fa5]
* 匹配双字节字符(包括汉字在内):[^\x00-\xff]
* @param validateStr
* @return
*/
public static int getRegExpLength(String validateStr){
// String temp = validateStr.replaceAll("[\u4e00-\u9fa5]", "**");
String temp = validateStr.replaceAll("[^\\x00-\\xff]", "**");
return temp.length();
}
}
java 中英文长度_Java 计算中英文长度的若干种方法相关推荐
- java 不知道类名_Java 中获取类名的三种方法,你知道几种?
之前我们分享过Java高级篇--深入浅出Java类加载机制这篇文章,今天来带你了解获取类名的三种方法. 获取类名的方法 Java 中获取类名的方式主要有以下三种. getName() 返回的是虚拟机里 ...
- java 读取控制台_Java从控制台读入数据的几种方法总结
这里记录Java中从控制台读入信息的几种方式,已备后查! (1)JDK 1.4(JDK 1.5和JDK 1.6也都兼容这种方法) public class TestConsole1 { public ...
- java保留小数_java保留两位小数4种方法
java保留两位小数4种方法 方法一:String的format方法(推荐) double f = 111231.5585; System.out.println(String.format(&quo ...
- java获取文件大小_Java实现获取文件大小的几种方法
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 目前Java获取文件大小的方法有两种: 1.通过file的length()方法获取: 2.通过流式方法获取: 通过流式方法又有两种,分别是旧的java.i ...
- java时间代码_java获取当前时间的四种方法代码实例
这篇文章主要介绍了java获取当前时间的四种方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 第一种:Date类 public class ...
- java当前时间_java 获取当前时间的三种方法
总结java里面关于获取当前时间的一些方法 System.currentTimeMillis() 获取标准时间可以通过System.currentTimeMillis()方法获取,此方法不受时区影响, ...
- java 取名字_Java 中获取类名的三种方法,你知道几种?
之前我们分享过Java高级篇--深入浅出Java类加载机制这篇文章,今天来带你了解获取类名的三种方法. 获取类名的方法 Java 中获取类名的方式主要有以下三种. getName()返回的是虚拟机里面 ...
- java 复制文件_Java中复制文件的4种方法
Java拷贝文件是一种非常常见的操作.但是java.io.File类没有任何快捷方法可以将文件从源复制到目标文件.在这里,我们将了解学习可以在java中复制文件的四种不同方法. 方法一:使用Strea ...
- java 获取类名_Java中获取类名的3种方法!
获取类名的方法 Java 中获取类名的方式主要有以下三种. getName() 返回的是虚拟机里面的class的类名表现形式. getCanonicalName() 返回的是更容易理解的类名表示. g ...
- java文件拷贝_Java实现文件拷贝的4种方法
第一种方法:古老的方式 public static long forJava(File f1,File f2) throws Exception{ long time=new Date().getTi ...
最新文章
- WeScale 技术篇 —— mpvue 与微信小程序的火花
- C语言 数组长度计算 - C语言零基础入门教程
- node 后台文章编辑器_我如何使用Node从报纸网站上刮掉7000篇文章
- 【假期重磅福利】更新三个Oracle系列课程,共153课时,最低免费获取
- eclipse创建maven
- tesseract如何在Linux下卸载,Tesseract装配
- php unix时间戳单位,PHP对于Unix时间戳的转换
- Python 深度学习常用包汇总
- LoadRunner “add measurements”(添加度量)菜单问题
- Python 垃圾回收机制详解
- 彩色照片转化为黑白照片
- 微软浏览器edge对日期Date对象format(yyyy-mm-dd)/getDiff()方法不识别
- Unity 彩色打印日志信息
- animejs走马灯_web前端攻城狮超爱的JS动画库插件—anime.js
- 内网穿透工具-venom
- 世界一流水平的中国 10 大顶尖科学家
- oracle使用PLSQL导出dmp文件一闪而过的解决办法
- 下载的视频花屏怎么办?其实很简单!!!
- 一篇学完:GAMES101:现代计算机图形学入门 学习笔记
- 分布式服务架构:原理 设计与实践(读书总结)
热门文章
- 想学一门技术,学java有前途吗?
- unity3d 人物对话_Unity 3D游戏-NPC对话系统With XML
- java 定义泛型方法_Java中泛型方法的定义
- Js 中实现重定向的几种方式
- C# 后台js重定向Response.Write
- 数据揭示《哪吒之魔童降世》火爆背后的艰辛:66个剧本100次修改,1600人通宵5年...
- MATLAB环境下基于深度学习的语音降噪方法
- novoton-msys_init函数
- java outofmemory怎么解决_java.lang.OutOfMemoryError异常解决方法
- 对四旋翼无人机飞行的认识(飞行控制原理)