6.6.1 - Alpha2 - 支持 Node.js 拼音模块及结巴分词
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user