如何判断一个字符是python判断中文字符串

&&/&&&&/&&&&/&&
怎样判断一个字符是否是一个字母?
字母表中的所有字母(包括计算机键盘上的所有键)都被赋予了一个值,这些字符及其相应的值一起组成了ASCII字符集,该字符集在北美、欧洲和许多讲英语的国家中得到了广泛的使用。
字母字符被分成大写和小写两组,并按数字顺序排列。有了这种安排,就能很方便地检查一个字符是否是一个字母以及是大写还是小写。下面这段代码说明了如何检查一个字符是否是一个字母:
ch=getche() ;
if((ch&=97) && (ch&=122))
&&&&& printf(& %c is a lowercase letter\n& ,ch);
else if ((ch&=65) && (ch&=90))
&&&&& print(& %c is an uppercase letter\n& ,ch);
&&&&& printf(& %c is not an alphabet letter\n& ,ch) ;
在上例中,变量ch的值与十进制值进行比较。当然,它也可以与字符本身进行比较,因为ASCII字符既是按字符顺序定义的,也是按数字顺序定义的。请看下例:
ch=getche() ;
if((ch&='a') && (ch&='z'))
&&&&& printf(&%c is a lowercase letter\n& ,ch);
else if ((ch&='A') && (ch&='Z'))
&&&&& print(& %c is a uppercase letter\n& ,ch);
&&&&& printf(& %c is not an alphabet letter\n& ,ch);
你可以随便选择一种方法在程序中使用。但是,后一种方法的可读性要好一些,因为你很难记住ASCII码表中每个字符所对应的十进制值。
怎样判断一个字符是否是一个数字?
在ASCII码表中,数字字符所对应的十进制值在48到57这个范围之内,因此,你可以用如下所示的代码来检查一个字符是否是一个数字:
ch=getche() ;
if((ch&=48) && (ch&=57))&&&&&&&
&&&&& printf(& %c is a number character between 0 and 9\n& ,ch) ;
&&&&& printf(& %c is not a number\n& ,ch) ;
与20.18相似,变量ch也可以和数字本身进行比较:
ch=getche () ;
if((ch&='O') && (ch&='9'))
&&&&& printf(& %c is a number character between 0 and 9\n& ,oh) ;
&&&&& printf(& %c is not a number~n& ,ch) ;
同样,选用哪一种方法由你决定,但后一种方法可读性更强。
推荐文章 TOP10Java精确判断一个字符串是否有中文 - 来杯咖啡,随便聊聊。 - ITeye技术网站
博客分类:
Java判断一个字符串是否有中文是利用Unicode编码来判断,因为中文的编码区间为:0x4e00--0x9fbb,不过通用区间来判断中文也不非常精确,因为有些中文的标点符号利用区间判断会得到错误的结果。而且利用区间判断中文效率也并不高,例如;str.substring(i, i + 1).matches("[\\u4e00-\\u9fbb]+"),就需要遍历整个字符串,如果字符串太长效率非常低,而且判断标点还会错误。这里提高一个高效准确的判断方法,方法在下面的代码里:private static final boolean isChinese(char c) 。类已经编译通过,运行可以查看结果。
package com.zakisoft.
public class IsChineseOrNot {
// GENERAL_PUNCTUATION 判断中文的“号
// CJK_SYMBOLS_AND_PUNCTUATION 判断中文的。号
// HALFWIDTH_AND_FULLWIDTH_FORMS 判断中文的,号
private static final boolean isChinese(char c) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
|| ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
public static final boolean isChinese(String strName) {
char[] ch = strName.toCharArray();
for (int i = 0; i & ch. i++) {
char c = ch[i];
if (isChinese(c)) {
public static void main(String[] args) {
System.out.println(isChinese("き"));
System.out.println(isChinese("test,.?!%^&*(){}[]"));
System.out.println(isChinese("测试"));
System.out.println(isChinese("“测试”,。?!%……&*()——{}【】”"));
public static final boolean isChineseCharacter(String chineseStr) {
char[] charArray = chineseStr.toCharArray();
for (int i = 0; i & charArray. i++) {
if ((charArray[i] &= 0x4e00) && (charArray[i] &= 0x9fbb)) {
* @ 弃用。和方法isChineseCharacter比效率太低。
public static final boolean isChineseCharacter_f2() {
String str = "!?";
for (int i = 0; i & str.length(); i++) {
if (str.substring(i, i + 1).matches("[\\u4e00-\\u9fbb]+")) {
System.out.println(isChinese("き"));
System.out.println(isChinese("test,.?!%^&*(){}[]"));
System.out.println(isChinese("测试"));
System.out.println(isChinese("“测试”,。?!%……&*()——{}【】”"));
运行结果为:
false
false
true
true
浏览 11651
怎样判断韩语和日语?你看42行代码 if ((charArray[i] &= 0x4e00) && (charArray[i] &= 0x9fbb))我感觉,应该也是一个字符范围问题。 是不是可以插一下ASC2,查一下,字符的范围。
浏览: 2002849 次
来自: 北京
感谢提供jar!
谢谢,学习了
虽然免费,但是相当不好用,还是用专业的产品吧,推荐用PageO ...Pages: 1/2
主题 : lua中如何判断字符串中包含中文字符?
级别: 新手上路
可可豆: 41 CB
威望: 41 点
在线时间: 146(时)
发自: Web Page
来源于&&分类
lua中如何判断字符串中包含中文字符?&&&
如题:类似AS3中的charCodeAt方法.貌似string.byte()不行.这里可以正确取出但是还是不知道某个字符是中文的.望大神解答..
级别: 新手上路
UID: 331999
可可豆: 144 CB
威望: 113 点
在线时间: 100(时)
发自: Web Page
-- 计算字符串宽度
local str = &Jimmy: 你好,世界!&
local fontSize = 20
local lenInByte = #str
local width = 0
for i=1,lenInByte do
    local curByte = string.byte(str, i)
    local byteCount = 1;
    if curByte&0 and curByte&=127 then
        byteCount = 1
    elseif curByte&=192 and curByte&223 then
        byteCount = 2
    elseif curByte&=224 and curByte&239 then
        byteCount = 3
    elseif curByte&=240 and curByte&=247 then
        byteCount = 4
    end
    
    local char = string.sub(str, i, i+byteCount-1)
    i = i + byteCount -1
    
    if byteCount == 1 then
        width = width + fontSize * 0.5
    else
        width = width + fontSize
        print(char)
    end
print(&总宽度: &..width)
从i7909的richlabel里抄出来的~ 你可以直接在这里运行 运行结果
总宽度: 270
级别: 新手上路
可可豆: 50 CB
威望: 50 点
在线时间: 70(时)
发自: Web Page
遍历数组,对每个字节使用string.byte(),发现有大于127的,就是汉字
级别: 新手上路
可可豆: 41 CB
威望: 41 点
在线时间: 146(时)
发自: Web Page
我以為跟AS3一樣的.是判斷0x4e00和0x9fbb之間.原來只要大於127就行.多謝各位了.
级别: 新手上路
UID: 189157
可可豆: 256 CB
威望: 257 点
在线时间: 201(时)
发自: Web Page
大于127是有问题的“¥”这个符号也是大于127的
级别: 精灵王
UID: 319920
发帖: 1350
可可豆: 1540 CB
威望: 1459 点
在线时间: 789(时)
发自: Web Page
回 4楼(墓后煮屎人) 的帖子
这个符号就是中文符号啊
级别: 新手上路
可可豆: 123 CB
威望: 94 点
在线时间: 117(时)
发自: Web Page
回 楼主(空心菜) 的帖子
楼主 解决没有阿&&不知地 楼主 说怎么 区别出 中文和 中文字符 的?
级别: 精灵王
UID: 319920
发帖: 1350
可可豆: 1540 CB
威望: 1459 点
在线时间: 789(时)
发自: Web Page
回 6楼() 的帖子
沙发不是已经给出方法了吗?
级别: 圣骑士
UID: 313161
可可豆: 592 CB
威望: 584 点
在线时间: 286(时)
发自: Web Page
-- mark --
级别: 侠客
UID: 449179
可可豆: 1855 CB
威望: 1148 点
在线时间: 450(时)
发自: Web Page
有用,谢大神普及姿势
噢噢噢噢噢噢噢噢哦哦哦
Pages: 1/2
关注本帖(如果有新回复会站内信通知您)
苹果公司现任CEO是谁?2字 正确答案:库克
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版

我要回帖

更多关于 js判断中文字符串相等 的文章

 

随机推荐