6.6.1 - Alpha2 - 支持 Node.js 拼音模块及结巴分词

This commit is contained in:
SuperMonster003
2024-12-24 20:24:32 +08:00
parent 7c62902429
commit 9a4b581f07
53 changed files with 38238 additions and 212 deletions

View File

@@ -0,0 +1,35 @@
package com.huaban.analysis.jieba
import java.util.regex.Pattern
object CharacterUtil {
var reSkip: Pattern = Pattern.compile("(\\d+\\.\\d+|[a-zA-Z0-9]+)")
private val connectors = charArrayOf('+', '#', '&', '.', '_', '-')
internal fun isChineseLetter(ch: Char) = ch.code in 0x4E00..0x9FA5
internal fun isEnglishLetter(ch: Char) = ch.code in 0x0041..0x005A || ch.code in 0x0061..0x007A
internal fun isDigit(ch: Char) = ch.code in 0x0030..0x0039
private fun isConnector(ch: Char) = connectors.contains(ch)
fun ccFind(ch: Char) = isChineseLetter(ch) || isEnglishLetter(ch) || isDigit(ch) || isConnector(ch)
/**
* 全角 to 半角,大写 to 小写
*
* @param input
* 输入字符
* @return 转换后的字符
*/
fun regularize(input: Char) = when (input.code) {
12288 -> 32.toChar()
in 65281..65374 -> (input.code - 65248).toChar()
in 'A'.code..'Z'.code -> input + 32
else -> input
}
}