本体开发日记07-我与java分词组件的爱恨情仇-CharacterUtil类

现在,打算挨个理解一下这个java版本的jieba组件程序!

package com.huaban.analysis.jieba;
import java.util.regex.Pattern;

这个是这个类的引用,正则表达式的一种已编译的实现。

 public static Pattern reSkip = Pattern.compile("(\\d+\\.\\d+|[a-zA-Z0-9]+)");
 private static final char[] connectors = new char[] { '+', '#', '&', '.', '_', '-' };

这个是定义的一些匹配行为?

    public static boolean isChineseLetter(char ch) {
        if (ch >= 0x4E00 && ch <= 0x9FA5)
            return true;
        return false;
    }

所有汉字的unicode编码列表 从4E00-9FCF?这段程序和这个解释对不上啊!这段程序大概是说是否是中文字符??

public static boolean isEnglishLetter(char ch) {
        if ((ch >= 0x0041 && ch <= 0x005A) || (ch >= 0x0061 && ch <= 0x007A))
            return true;
        return false;
    }

U+0041 A 拉丁字母 A!

https://blog.csdn.net/qq_33187168/article/details/50285187 Unicode字符列表

这个程序居然是unicode字符的!我都改成UTF-8格式了!!!

    public static boolean isDigit(char ch) {
        if (ch >= 0x0030 && ch <= 0x0039)
            return true;
        return false;
    }

U+0030 0 数字 0;U+0039 9 数字 9;表示,是否是数字的意思吧!

    public static boolean isConnector(char ch) {
        for (char connector : connectors)
            if (ch == connector)
                return true;
        return false;
    }

这个应该表示是否是连字符!因为前面定义了这些符号:private static final char[] connectors = new char[] { '+', '#', '&', '.', '_', '-' };

 public static boolean ccFind(char ch) {
        if (isChineseLetter(ch))
            return true;
        if (isEnglishLetter(ch))
            return true;
        if (isDigit(ch))
            return true;
        if (isConnector(ch))
            return true;
        return false;
    }

这个函数应该是,是否找到了上述几类的字符的意思,找到了返回true,找不到返回false!

    public static char regularize(char input) {
        if (input == 12288) {
            return 32;
        }
        else if (input > 65280 && input < 65375) {
            return (char) (input - 65248);
        }
        else if (input >= 'A' && input <= 'Z') {
            return (input += 32);
        }
        return input;
    }

这个用来规范字符格式的:全角 to 半角,大写 to 小写;暂时不知道input具体是指的什么意思!

https://tool.oschina.net/commons?type=4 ASCII码对照表工具

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值