java unicode转韩文_java-如何转换为韩文缩写

我认为在韩国应用程序中,仅凭一个初始字符就具有智能感知是不正常的行为-似乎通常是使用完整的Jamo来完成的.但是,我认为您不应该这样做-没有任何理由-让我们这样做.

首先,您错过了双缩写.这些与单打不同,因为它们确实需要不同的按键(通常是换字符).无论如何,您的姓名缩写列表应为:

???????????????????

输入首字母缩写时,您需要做的第一件事是获取以该特定首字母开头的字符范围.

通过查看Windows字符映射,我可以看到第一个字母Ka(?)位于Unicode点0xAC00(或十进制,44032),因此,要获取任何范围,都必须将此值添加到任何计算中做.因此,您应该有一个名为FirstLetter的常数或任何常数,其值应为44032.

?位于0xAE4C(或十进制44620),因此我们现在有了一个乘数(即以任何特定首字母开头的字符数-所有首字母均相同,因此为44620-44032即588.

现在,我们有足够的信息来实施您的智能感知.如果您在数组中具有首字母缩写,则可以使用该数组中键入字符的索引来查找以其开头的字符范围.

因此,如果我们以start开头,显然我们希望将所有内容从?返回到?.全部588.所以?给我们一个“ 0”,所以我们有

startCodePoint = index * 588 + 44032

// = 0 * 588 + 44032 == 44032 == ?

endCodePoint = (index + 1) * 588 + 44032

// this will include ?

然后您可以通过检查以下内容来检查特定字符是否以“?”开头

if(charcode >= startCodePoint && charcode < endCodePoint) { ... }

其中charcode是您的智能感知列表中某个项目的第一个字符.

使用类似的方法来找出如何检查字符是否以“?”开头.一切都是按Unicode顺序进行的,因此这是一个非常简单的任务.

要获取任何字符的首字母,可以反向使用上述公式.

>获取第一个字符的unicode值(例如?)

>从该值中减去44032.

>将该值除以588.

>使用该值作为索引,以从缩写列表中检索初始字符.

例如

String initials = "???????????????????";

int value = character.codePointAt(0);

value = (value - 44032) / 588;

String initial = initials.substring(value, 1);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值