根据字符的Unicode码判断字符是半角字符还是全角字符
Java:
/**
* 半角、全角文字处理工具类
*
* @author 陳峰
*/
public class DbcSbcUtils {
/**
* 半角、全角字符判断
*
* @param c
* 字符
* @return true:半角; false:全角
*/
public static boolean isDbcCase(char c) {
// 基本拉丁字母(即键盘上可见的,空格、数字、字母、符号)
if (c >= 32 && c <= 127) {
return true;
}
// 日文半角片假名和符号
else if (c >= 65377 && c <= 65439) {
return true;
}
return false;
}
/**
* 字符串长度取得(区分半角、全角)
*
* @param str
* 字符串
* @return 字符串长度
*/
public static int getLength(String str) {
int len = 0;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (isDbcCase(c)) { // 半角
len = len + 1;
} else { // 全角
len = len + 2;
}
}
return len;
}
/**
* 字符串截取(区分半角、全角)
*
* @param str
* 字符串
* @param limit
* 长度
* @return
*/
public static String left(String str, int limit) {
if (getLength(str) <= limit) {
return str;
}
char[] chars = str.toCharArray();
int charLenSum = 0;
String result = "";
for (int i = 0; i < chars.length; i++) {
int charLen = isDbcCase(chars[i]) ? 1 : 2;
if (charLenSum + charLen > limit) {
return result;
}
charLenSum += charLen;
result += chars[i];
if (charLenSum == limit) {
return result;
}
}
return "";
}
public static void main(String[] args) {
System.out.println(left("全角文字", 10));
System.out.println(left("全角文字判", 10));
System.out.println(left("全角文字12", 10));
System.out.println(left("全角文字123", 10));
System.out.println(left("全角文字判a", 10));
System.out.println(left("全角文字判断", 10));
}
}
JavaScript:
/**
* 函数名:计算字符串长度
* 函数说明:计算字符串长度,半角长度为1,全角长度为2
* @param str 字符串
* @return 字符串长度
*/
function getStrLen(str){
var len = 0;
var i;
var c;
for (var i=0;i<str.length;i++){
c = str.charCodeAt(i);
if (isDbcCase(c)) { //半角
len = len + 1;
} else { //全角
len = len + 2;
}
}
return len;
}
/**
* 函数名:判断字符是全角还是半角
* 函数说明:判断字符是全角还是半角
* @param c 字符
* @return true:半角 false:全角
*/
function isDbcCase(c) {
// 基本拉丁字母(即键盘上可见的,空格、数字、字母、符号)
if (c >= 32 && c <= 127) {
return true;
}
// 日文半角片假名和符号
else if (c >= 65377 && c <= 65439) {
return true;
}
return false;
}
分享到:
相关推荐
【免费题库】华为OD机试 - 字符串序列判定(Java & JS & Python & C & C++).html
三角形判定 用javascript 写的。很不错的。关于三角形判定三角形判定 用javascript 写的。很不错的。关于三角形判定三角形判定 用javascript 写的。很不错的。关于三角形判定三角形判定 用javascript 写的。很不错的...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...
JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器 Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器...
JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器 Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器...
测试用例设计白皮书-判定表 京华志&精华志出品 希望大家互相学习,互相进步 支持CSDN 支持微软 主要包括C# ASP.NET SQLDBA 源码 毕业设计 开题报告 答辩PPT等等好多知识
本篇除介绍Ajax原理和通用框架之外,还分别为从事Java和.NET开发的程序员安排了适合他们的DWR、Atlas框架。Ext篇:能否提供复杂用户界面,是RIA的一个重要判定标准。在本书中,笔者把这一重任交给了Ext。希望读者...
本篇除介绍Ajax原理和通用框架之外,还分别为从事Java和.NET开发的程序员安排了适合他们的DWR、Atlas框架。Ext篇:能否提供复杂用户界面,是RIA的一个重要判定标准。在本书中,笔者把这一重任交给了Ext。希望读者...
虽然功能简单了些。不过含有优先权的判定。比较方便了!使用了正则表达式。
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
是一个关于怎样用判定树,判定表解决问题的例子
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
本人亲自研发的回合制游戏的基本框架,2000多行,人物属性,技能,背包,商城,冒险等源代码,附带一个打包好的exe...对java初学者很有帮助,希望你能从我的源代码中找到灵感,有对java感兴趣的朋友可以评论联系我!
网络安全等级保护测评高风险判定指引(等保2.0)讲课讲稿.docx网络安全等级保护测评高风险判定指引(等保2.0)讲课讲稿.docx网络安全等级保护测评高风险判定指引(等保2.0)讲课讲稿.docx网络安全等级保护测评高风险判定...
java 解析Excel 并判断解析的数据类型__Eclipse工程,纯手工,无复制
学生管理学生体侧成绩判定系统使用说明书 主要功能: 1输入功能;2查询功能;3修改功能;4删除功能; 5统计功能;6显示功能(排序);7退出系统; 使用说明: 1进入系统;运行后会出现密码,输入密码 :2019,方可...
java根据ip获取国家、地区名称,附带ip地址库
判定树
java编程中对字符串的各种方式的处理,包括(空字符串处理、判断是否是空字符串 null和"" 都返回 true、 把string array or list用给定的符号symbol连接成一个字符串、 判定第一个字符串是否等于的第二个字符串中的某...