java 中、日、韩、英字符串截取
来源:互联网 发布:怎样装修淘宝店铺视频教程 编辑:程序博客网 时间:2024/04/27 17:50
StringTrimUtils,使用charArray,Java内部使用unicode,不用在意编码
java 代码
- public class StringTrimUtils {
- /**
- * 截取一段字符的长度(汉、日、韩文字符长度为2),不区分中英文,如果数字不正好,则少取一个字符位
- *
- * @param str 原始字符串
- * @param specialCharsLength 截取长度(汉、日、韩文字符长度为2)
- * @return
- */
- public static String trim(String str, int specialCharsLength) {
- if (str == null || "".equals(str) || specialCharsLength < 1) {
- return "";
- }
- char[] chars = str.toCharArray();
- int charsLength = getCharsLength(chars, specialCharsLength);
- return new String(chars, 0, charsLength);
- }
- /**
- * 获取一段字符的长度,输入长度中汉、日、韩文字符长度为2,输出长度中所有字符均长度为1
- * @param chars 一段字符
- * @param specialCharsLength 输入长度,汉、日、韩文字符长度为2
- * @return 输出长度,所有字符均长度为1
- */
- private static int getCharsLength(char[] chars, int specialCharsLength) {
- int count = 0;
- int normalCharsLength = 0;
- for (int i = 0; i < chars.length; i++) {
- int specialCharLength = getSpecialCharLength(chars[i]);
- if (count <= specialCharsLength - specialCharLength) {
- count += specialCharLength;
- normalCharsLength++;
- } else {
- break;
- }
- }
- return normalCharsLength;
- }
- /**
- * 获取字符长度:汉、日、韩文字符长度为2,ASCII码等字符长度为1
- * @param c 字符
- * @return 字符长度
- */
- private static int getSpecialCharLength(char c) {
- if (isLetter(c)) {
- return 1;
- } else {
- return 2;
- }
- }
- /**
- * 判断一个字符是Ascill字符还是其它字符(如汉,日,韩文字符)
- *
- * @param char c, 需要判断的字符
- * @return boolean, 返回true,Ascill字符
- */
- private static boolean isLetter(char c) {
- int k = 0x80;
- return c / k == 0 ? true : false;
- }
- }
- java 中、日、韩、英字符串截取
- JAVA中截取字符串
- java中截取字符串
- Java中字符串的截取
- java字符串中截取数字
- java中字符串的截取
- java中截取字符串技巧
- java中String截取字符串
- Java中字符串截取使用
- 截取字符串(中英混合串)-JAVA代码
- JAVA 中字符串的截取,要求不能截取半个汉字
- java中按字节截取String字符串.
- JAVA中按字节截取字符串
- JAVA中按字节截取字符串
- 小技巧----java中字符串的截取
- java中使用字节方式截取字符串
- JAVA,截取字符串,存放在数组中
- java中常用字符串截取方法
- 在Netbeans中使用Struts2.0+Spring2.5+Hibernate框架(一)
- 网页上的任务栏消息框
- 图片文件转换的方法
- 什么是测试用例的设计粒度?
- LoadRunner监控Window/Unix系统资源的配置
- java 中、日、韩、英字符串截取
- 喜欢的一首英文歌Be Here Now
- SqlTransaction、SqlConnection和SqlCommand对象实现ADO.NET事务处理
- UML 系列文件
- sql语句中的嵌套
- struts的action跳转大全
- 重复提交、重复刷新、防止后退的问题以及处理方式
- ASP.NET Framework处理一个Http Request的过程
- 【转】关于EASYSIZE宏(动态调整控件位置、大小的宏)的小结