【问题标题】:how to distinguish norwegian characters如何区分挪威字符
【发布时间】:2015-11-12 08:39:54
【问题描述】:

挪威字母表有Ø、Å、Æ..等字符。

    char character = 'Ø';
    int ascii = (int) character;
    System.out.println(ascii);

它返回 = 65533

    char character = 'Æ';
    int ascii = (int) character;
    System.out.println(ascii);

它还返回 = 65533

从键盘输入时如何区分这些字符?

【问题讨论】:

标签: java character ascii


【解决方案1】:

您的设置有误。字符实际上是 216 和 198。65533Unicode Replacement Character,当遇到不支持的字符时使用(通常是由于错误的编码)。如果它在 Eclipse 中有效,请检查您的 IDEA 设置是否有任何编码选项。

推荐阅读:http://joelonsoftware.com/articles/Unicode.html

【讨论】:

    【解决方案2】:

    解决问题的一种简单方法是使用字符串类中的.replaceAll(String regex, String replacement) 方法。这将允许您替换与给定正则表达式匹配的所有实例。因此,下面的代码:

        String input = "Løre lære i kjøpe";
        String result = input.replaceAll("ø", "oo");
        result = result.replaceAll("æ", "ae");
        System.out.println(result);
    

    会产生:

    Loore laere i kjoope
    

    因此,您可以拥有一个通过一系列替换调用来处理文本的方法。您可以为其添加一些智能,并允许它也将大写的单词替换为对应的英语单词。

    如果您有很多,您可以创建一个配置文件,然后您的应用程序将其加载到类似Map 的结构中。然后,您可以遍历地图并使用它来替换源字符串中的文本块。

    【讨论】:

    • @vlcod: 你用的是什么输入字符串?
    • @vlcod:是自己输入字母还是解析字符串?一些 IDE 在其控制台中的功能有限。
    • 这里没有使用任何正则表达式功能,所以replace()replaceAll() 好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多