放牧代码和思想
专注自然语言处理、机器学习算法
    This thing called love. Know I would've. Thrown it all away. Wouldn't hesitate.

判断字符串是否含有日文

日文字符的Unicode编码范围是:

  • U+3040–U+309F: Hiragana

  • U+30A0–U+30FF: Katakana

  • U+4E00–U+9FBF: Kanji

所以我们只需要对每一个字符判断其是否位于这三个区间即可。另外,如果你希望检测某个字符串是否含有简体中文字符字符串、繁体中文字符串等,只需要查询对应语言的Unicode编码范围,对下面的代码稍作改动即可。

Java code:

package com.hankcs;

import java.util.HashSet;
import java.util.Set;

public class Main
{

    public static void main(String[] args)
    {
        // write your code here
        Set<Character.UnicodeBlock> japaneseUnicodeBlocks = new HashSet<Character.UnicodeBlock>()
        {{
                add(Character.UnicodeBlock.HIRAGANA);
                add(Character.UnicodeBlock.KATAKANA);
                add(Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS);
            }};

        String mixed = "This is a Japanese newspaper headline: ラドクリフ、マラソン五輪代表に1万m出場にも含み";

        for (char c : mixed.toCharArray())
        {
            if (japaneseUnicodeBlocks.contains(Character.UnicodeBlock.of(c)))
            {
                System.out.println(c + " is a Japanese character");
            }
            else
            {
                System.out.println(c + " is not a Japanese character");
            }
        }
    }
}

受益自:http://stackoverflow.com/questions/9140978/how-to-check-if-the-word-is-japanese-or-english

知识共享许可协议 知识共享署名-非商业性使用-相同方式共享码农场 » 判断字符串是否含有日文

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #2

    请问怎么判断是繁体中文还是简体中文啊

    d9年前 (2015-06-27)回复
  2. #1

    支持

    支持10年前 (2014-01-17)回复

我的作品

HanLP自然语言处理包《自然语言处理入门》