方式1: 安装icu4

官方Github

https://github.com/unicode-org/icu

import com.ibm.icu.text.Transliterator;⏹全角转换半角
Transliterator literator1 = Transliterator.getInstance("Fullwidth-Halfwidth");
literator1.transliterate("カナ");  // カナ⏹半角转换全角
Transliterator literator2 = Transliterator.getInstance("Halfwidth-Fullwidth");
literator2.transliterate("カナ");  // カナ⏹平假名转换片假名
Transliterator literator4 = Transliterator.getInstance("Hiragana-Katakana");
literator4.transliterate("なし");  // ナシ⏹片假名转换平假名
Transliterator literator3 = Transliterator.getInstance("Katakana-Hiragana");
literator3.transliterate("カナ");  // かな

依赖

<dependency><groupId>com.ibm.icu</groupId><artifactId>icu4j</artifactId><!--此版本过时,Maven仓库获取最新版本--><version>3.4.4</version>
</dependency>

方式2

参考 https://github.com/shogo4405/KanaXS
以下js代码均摘录于KanaXS中,该项目中还包含Java和C#的转换

2.1 全角英数字を半角英数字に変換します

/*** 全角英数字を半角英数字に変換します。* @example* "abcABC123".toHankakuCase(); // abcABC123* @return {String}*/
String.prototype.toHankakuCase = function()
{var c, i = this.length, a = [];while(i--){c = a[i] = this.charCodeAt(i);switch(true){// 【!】~【~】の範囲case (0xFF01 <= c && c <= 0xFF5E):a[i] -= 0xFEE0;break;// 全角スペースcase (c == 0x3000):a[i] = 0x0020;break;};};return String.fromCharCode.apply(null, a);
};

2.2 全角のカタカナを半角のカタカナに変換します

/*** 全角のカタカナを半角のカタカナに変換します。* @example* "アイウエオ".toHankanaCase(); // アイウエオ* @return */
String.prototype.toHankanaCase = function()
{var i, f, c, a = [], m = String.prototype.toHankanaCase.MAPPING;for(i = 0, f = this.length;i < f;){c = this.charCodeAt(i++);switch(true){case (c in m):a.push(m[c]);break;case (0x30AB <= c && c <= 0x30C9):a.push(m[c - 1], 0xFF9E);break;case (0x30CF <= c && c <= 0x30DD):a.push(m[c - c % 3], [0xFF9E,0xFF9F][c % 3 - 1]);break;default:a.push(c);break;};};// 那个日本人Github中的代码有bug,当全角片假名为ジャ、ジュ、ジョ等假名时ャ,ュ,ョ无法转换为半角片假名// 暂且添加replaceAll("ャ", "ャ").replaceAll("ュ", "ュ").replaceAll("ョ", "ョ") 来应付需求return String.fromCharCode.apply(null, a).replaceAll("ャ", "ャ").replaceAll("ュ", "ュ").replaceAll("ョ", "ョ");
};String.prototype.toHankanaCase.MAPPING =
{0x30A1:0xFF67,0x30A3:0xFF68,0x30A5:0xFF69,0x30A7:0xFF6A,0x30A9:0xFF6B,0x30FC:0xFF70,0x30A2:0xFF71,0x30A4:0xFF72,0x30A6:0xFF73,0x30A8:0xFF74,0x30AA:0xFF75,0x30AB:0xFF76,0x30AD:0xFF77,0x30AF:0xFF78,0x30B1:0xFF79,0x30B3:0xFF7A,0x30B5:0xFF7B,0x30B7:0xFF7C,0x30B9:0xFF7D,0x30BB:0xFF7E,0x30BD:0xFF7F,0x30BF:0xFF80,0x30C1:0xFF81,0x30C4:0xFF82,0x30C6:0xFF83,0x30C8:0xFF84,0x30CA:0xFF85,0x30CB:0xFF86,0x30CC:0xFF87,0x30CD:0xFF88,0x30CE:0xFF89,0x30CF:0xFF8A,0x30D2:0xFF8B,0x30D5:0xFF8C,0x30D8:0xFF8D,0x30DB:0xFF8E,0x30DE:0xFF8F,0x30DF:0xFF90,0x30E0:0xFF91,0x30E1:0xFF92,0x30E2:0xFF93,0x30E4:0xFF94,0x30E6:0xFF95,0x30E8:0xFF96,0x30E9:0xFF97,0x30EA:0xFF98,0x30EB:0xFF99,0x30EC:0xFF9A,0x30ED:0xFF9B,0x30EF:0xFF9C,0x30F2:0xFF66,0x30F3:0xFF9D,0x30C3:0xFF6F
};

2.3 全角カタカナを全角ひらがに変換します

/*** 全角カタカナを全角ひらがに変換します。* @example* "アイウエオ".toHiraganaCase(); // あいうえお* @return {String}*/
String.prototype.toHiraganaCase = function()
{var c, i = this.length, a = [];while(i--){c = this.charCodeAt(i);a[i] = (0x30A1 <= c && c <= 0x30F6) ? c - 0x0060 : c;};return String.fromCharCode.apply(null, a);
};

2.4 全角ひらがなを全角カタカナに変換します。

/*** 全角ひらがなを全角カタカナに変換します。* @example* "あいうえお".toKatakanaCase(); // アイウエオ* @return {String}*/
String.prototype.toKatakanaCase = function()
{var c, i = this.length, a = [];while(i--){c = this.charCodeAt(i);a[i] = (0x3041 <= c && c <= 0x3096) ? c + 0x0060 : c;};return String.fromCharCode.apply(null, a);
};

2.5 半角英数字を全角英数字に変換します。

/*** 半角英数字を全角英数字に変換します。* @example* "abcABC123".toZenkakuCase(); // abcABC123* @return {String}*/
String.prototype.toZenkakuCase = function()
{var c, i = this.length, a = [];while(i--){c = a[i] = this.charCodeAt(i);switch(true){case (c <= 0x007E && 0x0021 <= c):a[i] += 0xFEE0;break;case (c == 0x0020):a[i] = 0x3000;break;};};return String.fromCharCode.apply(null, a);
};

2.6 半角のカタカナを全角のカタカナに変換します。

/*** 半角のカタカナを全角のカタカナに変換します。* @example* "アイウエオ".toZenkanaCase(); // アイウエオ* @return {String}*/
String.prototype.toZenkanaCase = function()
{var i, f, c, a = [], m = String.prototype.toZenkanaCase.MAPPING;for(i = 0, f = this.length;i < f; i++){c = this.charCodeAt(i);a.push(m[c] || c);};return String.fromCharCode.apply(null, a);
};String.prototype.toZenkanaCase.MAPPING =
{0xFF67:0x30A1,0xFF68:0x30A3,0xFF69:0x30A5,0xFF6A:0x30A7,0xFF6B:0x30A9,0xFF70:0x30FC,0xFF71:0x30A2,0xFF72:0x30A4,0xFF73:0x30A6,0xFF74:0x30A8,0xFF75:0x30AA,0xFF76:0x30AB,0xFF77:0x30AD,0xFF78:0x30AF,0xFF79:0x30B1,0xFF7A:0x30B3,0xFF7B:0x30B5,0xFF7C:0x30B7,0xFF7D:0x30B9,0xFF7E:0x30BB,0xFF7F:0x30BD,0xFF80:0x30BF,0xFF81:0x30C1,0xFF82:0x30C4,0xFF83:0x30C6,0xFF84:0x30C8,0xFF85:0x30CA,0xFF86:0x30CB,0xFF87:0x30CC,0xFF88:0x30CD,0xFF89:0x30CE,0xFF8A:0x30CF,0xFF8B:0x30D2,0xFF8C:0x30D5,0xFF8D:0x30D8,0xFF8E:0x30DB,0xFF8F:0x30DE,0xFF90:0x30DF,0xFF91:0x30E0,0xFF92:0x30E1,0xFF93:0x30E2,0xFF94:0x30E4,0xFF95:0x30E6,0xFF96:0x30E8,0xFF97:0x30E9,0xFF98:0x30EA,0xFF99:0x30EB,0xFF9A:0x30EC,0xFF9B:0x30ED,0xFF9C:0x30EF,0xFF9D:0x30F3,0xFF9E:0x309B,0xFF9F:0x309C,0xFF66:0x30F2
};

Java/JS 日语全半角,平片假名转换相关推荐

  1. word全半角标点符号批量转换

    前往我的个人博客,阅读体验更佳. 1.使用内置的全半角转换 word 提供了包括标点符号.数字.英文字母的综合性全半角互换功能,如图所示: 选中需要更改的区域,选择需要更改的类型(全角或者半角)即可. ...

  2. win10日语输入法切换平片假名

    1.切换平假名 使用Ctrl + CapsLock切换至平假名输入 2.切换片假名 使用Alt + CapsLock切换至片假名输入 3.切换英文输入 使用Shift + CapsLock或Alt + ...

  3. 基于内码映射方案的简繁体、全半角、gbk/utf8编码轻量级转换方案,无需三方库

    基于内码映射方案的简繁体.全半角.gbk/utf8编码轻量级转换方案,无需三方库 基于内码映射方案的简繁体.全半角.gbk/utf8编码互相转换 1. Unicode和UTF8/16/32之间的关系 ...

  4. java实现全角和半角之间的转换

    java实现全角和半角之间的转换 需求背景 代码实现 需求背景 最近网站引入了一些日文的资料,发现日文提供的资料是阿拉伯数字和一些字符竟然是全角,全角字符我们想要读取里面的信息会变得比较被动,所以要求 ...

  5. java 全半角转换_Java字符串全半角转换

    虽然生活中很少用到全角,但是有时还是会用到对字符串进行全半角的转换,尤其是全角转换为半角,在这里简单记录一下,以备以后使用参考: /** * 字符串全半角转换 */ package com.proje ...

  6. Java字符全半角转换

    Java字符 以下代码可以打印出Java中的所有字符 public static void main(String[] args) {for (int i = Character.MIN_VALUE; ...

  7. 字符串中全角半角之间的转换

    前几天,在做表单验证的时候,发现用户在输入表单内容的时候,正常情况下都是半角输入,但是也有可能是全角输入,所以就牵扯到全角输入内容的验证,这里便提供全角和半角之间的转换函数,与大家分享一下: 1.js ...

  8. JS对全角与半角的验证,相互转化以及介绍

    1.什么是全角和半角? 全角:是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置.全角占两个字节. 汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都 ...

  9. JS对全角与半角的验证,相互转化以及介绍 | CSDN创作打卡

    文章目录 1.什么是全角和半角? 2.全角和半角的区别 3.js判断输入的文字是全角还是半角? 4.js对全角与半角的相互转化 半角转化为全角 全角转换为半角 1.什么是全角和半角? 全角:是一种电脑 ...

最新文章

  1. centos卸载harbor_【Harbor】Harbor镜像仓库的安装与历史版本镜像的清理
  2. NIOS II spi详解
  3. Python学习札记(二十八) 模块1
  4. 【C语言简单说】三:整数变量和输出扩展(2)
  5. 首次结算和汇总不一致处理方式总结
  6. 汽车上有哪些很难发现却非常实用的配置?
  7. 我与潘家园金爷的对话
  8. Linux基础自学记录二
  9. VSCode使用eclipse快捷键
  10. dmz区域和虚拟服务器的区别,dmz主机 虚拟服务器
  11. 转载防丢-caffe训练集搭建
  12. api-String
  13. 使用print.js进行分页打印
  14. Monte-Carlo Dropout,蒙特卡罗 dropout
  15. 【icon图标】icon字体图标的下载与使用
  16. toFixed() is not a function toFixed方法数字类型才能使用
  17. 电路板上为何要有孔洞?何谓PTH/NPTH/vias(导通孔)
  18. HTTP请求方法详解
  19. 中北大学计算机研究生学院,【计算机考研】院校信息-中北大学
  20. 三阶行列式的题目_考研数学 | 线性代数中的行列式重难点分析

热门文章

  1. 全球+中国+各省市自治区高清矢量地图汇总
  2. 位移传感器的原理和选型方式
  3. 冠心病人做完心脏支架手术后适合吃什么水果
  4. 波士顿大学 计算机专业,波士顿大学计算机专业怎么样?7大课程任你选
  5. 丰田精益生产方式是如何分析问题的?
  6. 有哪些好笑的关于程序员的笑话
  7. 各大媒体优劣对比_新媒体与传统四大媒体的优劣对比
  8. Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK fla
  9. 手把手带你撸一遍vue-loader源码
  10. 云图说|华为云MRS,云上企业级大数据服务