问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何判断字符串中含有日文字符

发布网友 发布时间:2022-05-29 04:19

我来回答

1个回答

热心网友 时间:2024-10-22 20:28

最近做的东西有这么一个需要:判断一个字符串中是否含有日文字符。最直观的想法就是使用正则表达式,因此上网一搜,找到了这个 utf-8 对应的日文字符列表:http://ash.jp/code/unitbl21.htm 。满心欢喜,按照列表,用utf-16指定的区间,再用正则表达式方式写了一个判断方法。 


测试了几个单词,正确。不过测试了几个汉字,发现不对。 


仔细看了看那个表,发现 字母和假名部分,utf-16是连续的,但是汉字和特殊字符部分,就不是连续的了。这就是用正则表达式也得累死人! 


再看看那个表,SJIS 编码的code是连续的,恩,可以使用区间,所以字符串得转换一下: 

Java代码  

str = new String(str.getBytes(), "UTF-8");  
byte[] bt = str.getBytes("SHIFT-JIS");


不过那个表也真大阿!!就算用 shift-jis编码,正则表达式也不短! 


在输出 byte[] 的时候,发现如果是中文的话,那么 byte[] 的长度会小于4,而且不会被2 整除。于是乎,方法来了: 

Java代码  

return bt.length %2 == 0;



这个方法可以判断一个字符是否为日文字符,那么判断字符串中是否包含日文字符也不难了。 


以下是测试类: 


Java代码  

assertTrue(CharacterUtil.isContainJapaneseCharacter("亜亜"));  
          
assertTrue(CharacterUtil.isContainJapaneseCharacter("お早う"));  
assertTrue(CharacterUtil.isContainJapaneseCharacter("学校"));  
assertTrue(CharacterUtil.isContainJapaneseCharacter("お早う,tom!"));  
assertFalse(CharacterUtil.isContainJapaneseCharacter("严"));  
assertFalse(CharacterUtil.isContainJapaneseCharacter("tom"));  
          
try {  
  InputStream is = getClass().getClassLoader().getResourceAsStream("util/CharacterTest.utf_8");  
  LineNumberReader ln = new LineNumberReader(new InputStreamReader(is, "UTF-8"));  
  // 汉字 足  
  assertTrue(CharacterUtil.isContainJapaneseCharacter(ln.readLine()));  
  // あし 足  
  assertTrue(CharacterUtil.isContainJapaneseCharacter(ln.readLine()));  
} catch (IOException e) {  
  // TODO Auto-generated catch block  
  e.printStackTrace();  
}


其中比较特殊的是 “足”之类的文字,在 UNICODE 列表中,中日韩有几部分是公用一些汉字的。(CharacterTest.utf_8 是一个 utf-8 编码的文本文件,里面分别用汉字和日文写了“足”这个字 )。

如何判断字符串中含有日文字符

最近做的东西有这么一个需要:判断一个字符串中是否含有日文字符。最直观的想法就是使用正则表达式,因此上网一搜,找到了这个 utf-8 对应的日文字符列表:http://ash.jp/code/unitbl21.htm 。满心欢喜,按照列表,用utf-16指定的区间,再用正则表达式方式写了一个判断方法。测试了几个单词,正确。不...

c#如何判断字符串是否有日文

日文在unicode中的编码范围你查一下,当你要判断这个字符是不是日文的时候,只需要查一下这个字符的编码是不是在日文编码范围就可以了。祝你成功!

UTF8如何区分中日韩混合的字符串中的字符? - PHP进阶讨论

虽然对应的汉字不一样,但都是有效汉字。所以严格地说,是无法判断的。但从UTF8编码规则看,字符串有几种固定的组合:110xxxxx,10xxxxxx,10xxxxxx 1110xxxxx,10xxxxxx,10xxxxxx,10xxxxxx 等,如果符合这个条件,那么可以说“字符串为UTF8编码的可能性非常大”。

c#怎么判断字符串是不是片假名,做文件处理,表中某一列的数据怎么知道它...

下面这个是我网上找到,用的是正则表达式匹配,你看看。这些字符集尤其是日文字符集的各种字、标点以及特殊符号的时候有所帮助。UTF8 [\x01-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3} UTF16 [\x00-\xd7][\xe0-\xff]|[\xd8-...

如何在一个带有日文的字符串中查找指定的日文字符?

source="2009年03月19日顷";rec=eregi("未确定",$source);eregi -- 不区分大小写的正则表达式匹配 返回布尔值。

如何在一个带有日文的字符串中查找指定的日文字符?

source="2009年03月19日顷";rec=eregi("未确定",$source);eregi -- 不区分大小写的正则表达式匹配 返回布尔值。

如何VBA使用识别中文及日文

Excel函数:PHONETIC 提取文本字符串中的拼音 (furigana) 字符。该函数只适用于日文版。不过我从网上找到一些日文,然后使用这个函数后与使用前比较是False。而全部是中文是True.会用VBA,怎么使用这个函数不用说了吧

VB6/VBA - InStr/InStrRev 内存溢出,求专业人士解答!

尽管你可能不愿意听,但这确实是VB语言的一个Bug,只要字符串中含有如下日文字符(并不是全部日文字符),在进行文本比较时就会出错(二进制比较则不会出错):ゴガギグゲザジズヅデドポベプビパヴボペブピバヂダゾゼ 这个Bug已经被微软通过补丁更正。可以用变通的方法实现不区分大小写的字符串查询...

判断该字符串中是否含有中文字符的java代码

//Java判断一个字符串是否有中文是利用Unicode编码来判断,// 因为中文的编码区间为:0x4e00--0x9fbb return true;} } return false;} if(a>255 || a<0 ) 仅仅判断的是非英文字符,该条件得出的结果有中文字符有中文标点符号有日文和韩文 if ((a >= 0x4e00) && (a <= 0x9fbb))这...

字符串包含某个字符串用什么方法

另外,在Excel中,对文本进行处理的很多函数都提供了一个特别用来处理双字节字符(如中文,日文)的函数,一般是在原函数后加“B”,如FIND, 就有一个FINDB。LEFT,相对应的就是LEFTB等。其实,我们在实际应用中,使用不带“B”的函数就足够了。如果你想使用带“B”的函数,则要特别注意,尤其是在...

判断字符串中是否含有某个字符 怎么数字符串中有多少个字符 判断字符串是否存在某个字符 如何输出含有空格的字符串 js判断含有某字符串 查询字符串中是否包含XX字符 js字符串包含字符串 字符串包含字符个数 字符串中某个字符个数
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
河南旅游景点大全介绍排名 ...市市民办理因私出国去新加坡的护照怎么办理到哪里办理? 查询齐齐哈尔讷河市办理护照,陈秀华的护照什么时候下来 您好我是8月12日在黑龙江省讷河市办理的护照大概需要多上时间可以申请成... 沈阳娱乐在线影视天下,就是铁通的www.024game.com这个网站为什么上不... 好无聊,不是我没主动联系他们,而是他们不理我,全都无视我 为什么很多人很多时候都喜欢感叹:我好无聊啊! 好无聊,有没有人来给我发表情包的 15款宝马x1怎么播放usb音乐 为什么会有平安资管 最近5年高考英语作文题和范文 健胃消食片真的能帮助胃消化吗? 请问语言文化类专业中包括日语吗? 自考汉语言文学,里面的科目包含日语、法语、俄语,这三科都要考吗_百度... 联合国六种工作语言中包括日语么? 吃健胃消食片是帮助消化的吗? 江中健胃消食片的功效与作用呢? 健胃消食片是促进消化的,还是促进吸收的? 健胃消食片有什么功效,可以治胃病吗 急求高考英语作文范文 要短的 健胃消食片有什么功效? 日语。こもる和こめる这对都是表示包含的自他动词,请问它俩的区别在... 爱的借口,覆水难收谁能坚持到最后,谁会陪谁到永久 包含用日语假名怎么写 LES 能坚持到最后的有多少 ? 悲哀 相信自己可以坚持到最后一刻的到来…… 坚持就是胜利吗?坚持到最后是不是都有一个美好的结果呢??? 一样都是大学恋爱,但有多少人能坚持到最后 都说坚持就是胜利,为什么最终坚持下来的人比较少? 坚持到最后,守得云开见月明,离理想更近的星座是哪些呢? 求一篇高三的英语作文(短点,一百字) (高分悬赏)要打开的文件路径中包含日语(日本)不兼容的字符 胃胀吃健胃消食片有作用吗? 日语不太好请多包含,怎麼翻译 请哪位大神给我造个句子 其中包括日语的平假名片假名汉字罗马字_百度知 ... 斯达舒和江中健胃消食片的功效分别是什么? 健脾胃的食物有哪些?健胃消食片是起到什么作用? 哪款面膜祛斑美白效果比较好 求 九月刊.The.September.Issue 百度云免费在线观看资源 为什么时尚杂志的九月刊是每年最重要的一期? 跪求好心人分享九月刊2009年上映的由 安娜·温图尔主演的免费高清百度 ... 《九月刊》免费在线观看完整版高清,求百度网盘资源 李沁瑞丽九月刊封面曝光,她在杂志上的造型如何? 谢霆锋登时尚芭莎九月刊封面,他的时尚表现力有多强? 九月刊的电影相关 陈飞宇登上T九月刊封面,他的时尚表现力有多强? 英吉利海峡隧道多长 蔡徐坤登上《芭莎艺术》9月刊,为何他能成为首位登刊的男星? 身高183cm肖战,“红配绿”装扮登九月刊杂志封面,“红配绿”也有春天了... 玄彬《Esquire》九月刊封面,英俊帅气的外表始终如一,美黑后的他你喜欢...