如何检查单词是日语还是英语?

时间:2012-02-04 12:44:41

标签: java

我希望在此方法中使用英语单词和日语单词的不同过程:

if (english) {
    // say english
} else {
    // say not english
}

如何在JSP中实现这一目标?

3 个答案:

答案 0 :(得分:10)

日语字符位于某些Unicode范围内:

  • U + 3040-U + 309F:Hiragana
  • U + 30A0-U + 30FF:片假名
  • U + 4E00-U + 9FBF:汉字

所以你基本上需要做的就是检查角色的代码点是否在已知范围内。

Set<UnicodeBlock> japaneseUnicodeBlocks = new HashSet<UnicodeBlock>() {{
    add(UnicodeBlock.HIRAGANA);
    add(UnicodeBlock.KATAKANA);
    add(UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS);
}};

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

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

目前还不清楚你什么时候想说日语。当字符串包含混合的日语和拉丁语(或其他!)字符时,或者字符串包含日语字符时。上面的例子至少应该是一个很好的起点。

请注意,这一切与JSP完全无关。 JSP只是一种Web表示技术,允许您动态生成HTML / CSS / JS代码。在JSP文件中编写Java代码被视为bad practice

答案 1 :(得分:0)

AFAIK,日语单词使用超过256的字符,而英语不使用它们。您可以测试其中一个字符是否为>= 256

答案 2 :(得分:-1)

尝试以下

char ch='A';

if ((int)ch<=255) {
    System.out.println("This is english letter");
} else {
    System.out.println("This is Japnese letter");
}

你需要做的是打破char数组中的String !!!

祝你好运!!!