提问

您好,我正在开发韩国的Android应用程序.

在这里,我实现了一个带有字母部分标题的列表视图,以显示联系人.我使用String类的substring方法获取第一个字母作为节标题.对于韩国人,我也使用子字符串方法获取首字母.在这里,我需要将韩语首字母显示为Korean contactㄷㄹㅎㅎㅎㅍㅎ.我真的不知道韩国联系人列表中的哪个首字母与这些韩国首字母匹配.

因此,请帮助我如何做到这一点,或给我参考以遵循…

提前致谢..

最佳答案

我认为在韩国应用程序中,仅凭一个初始字符就具有智能感知是不正常的行为-似乎通常是使用完整的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);

java 韩文转中文_java-如何转换为韩文缩写相关推荐

  1. Java 将xml模板动态填充数据转换为word文档

    需要用到的jar包: commons-codec-1.10.jar freemarker-2.3.21.jar jacob-1.6.jar 实现思路: 1.先将word文档另存为 : Word 200 ...

  2. java 判断是否包含中文_java判断字符串中是否包含中文并过滤中文

    java判断字符串中是否包含中文并过滤掉中文,具体内容如下 1.判断字符串中是否包含中文方法封装 /** * 判断字符串中是否包含中文 * @param str * 待校验字符串 * @return ...

  3. java如何解析word大纲_Java POI 解析word文档

    实现步骤: 1.poi实现word转html 2.模型化解析html 3.html转Map数组 Map数组(数组的操作处理不做说明) 1.导jar包. 2.代码实现 package com.web.o ...

  4. java zip解压 中文_java解压ZIP 解决中文乱码 (GBK和UTF-8)

    java解压ZIP 解决中文乱码 (GBK和UTF-8) 工具使用 : zip4j GitHub : zip4j 版本 : 2.2.8 Maven : net.lingala.zip4j zip4j ...

  5. java 判断是否包含中文_Java中判断字符串中是否包含中文汉字

    一般在用户登录时需要判断用户名是否为中文汉字,可以使用正则表达式,来匹配字符是否包含中文,中文通配符为[u4e00-u9fa5]匹配中文,下面为大家分享一下使用Matcher来解决此问题. 代码如下: ...

  6. java取路径含中文_java获取项目路径中文乱码

    以下内容转自:http://blog.csdn.net/dream_broken/article/details/31762807# 项目的文件名称推荐都是英文名称,但是有时不可避免使用了中文,获取项 ...

  7. java判断字符串有中文_JAVA入门之正则表达式判断字符串包含中文

    测试程序运行结果!可以看到,程序可以正确判断出用户输入的信息字符串是否包含中文! 整个程序代码如下: import java.io.BufferedReader; import java.io.IOE ...

  8. java工程转maven工程_Java工程转换为Maven工程

    1. 前言 在开发中经常要建立一个Maven的子工程,对于没有模板的同学来说从Java工程来转换也是一个不错的选择.本文就如何从一个Java工程创建一个Maven工程做了一个介绍,相信对于将一个Jav ...

  9. java图片片识别中文_Java中使用tess4J进行图片文字识别(支持中文)

    Java 版本:建议JDK1.8 使用的软件是tesseractocr3.02,3以后的版本才支持中文, 这个软件需要安装在本地电脑中,安装的过程中全部都按照默认进行安装(以便于Java直接调用) 代 ...

最新文章

  1. html冷门标签,html 冷门
  2. 高德地图如何将比例尺放大到10米?
  3. 自学python需要什么_自学Python编程有什么要求
  4. 头条鼓励内容营销吗?创作商品营销内容会不会限制推荐?
  5. chrome 打印布局_在打印预览模式下使用Chrome的Element Inspector?
  6. Filter Session and Async 第三周博客
  7. android 刷机时缺少驱动无法识别
  8. pxe服务器启动镜像存放位置,PXE启动服务器及客户端镜像制作
  9. Bootstrap框架
  10. 如何制作网页棋牌游戏
  11. Intent.parseUri()详解
  12. Dism 错误 32
  13. 微信小程序入门之常用组件(04)
  14. 认真推荐几个高质量的原创公众号
  15. 光通量发光强度照度亮度关系_光通量、发光强度、照度单位的关系
  16. 静态路由的配置,实现全网可达
  17. CIPP翻转内衬法整体修复技术简介
  18. 一代神机 iPhone 6s 也终于到了“剧终之日”,下一个“钉子户机型”将会是谁
  19. 客户端dmesg_linux命令行安装oracle客户端 - 卡饭网
  20. kali系统与xshell远程连接

热门文章

  1. 计算机与日常办公的应用,计算机在日常办公中的综合应用
  2. .animate在360浏览器和谷歌浏览器同时生效
  3. C语言 文本文件读取、写入与定位(详细介绍)
  4. shell的变量的学习
  5. 云服务器怎样杀毒软件,云服务器用什么杀毒软件
  6. Windows XP系统修复功能的具体操作方法
  7. 21_Redis_浅析Redis缓存穿透和雪崩
  8. frameset的基础使用方法
  9. 一次关于IconFont的调研
  10. 卡巴斯基发布安全公告:2018年威胁预测