⏹全角假名转换半角假名

public class Test {private static final char[] ZENKAKU_KATAKANA = {'ァ', 'ア', 'ィ', 'イ', 'ゥ', 'ウ', 'ェ', 'エ', 'ォ', 'オ', 'カ', 'ガ', 'キ', 'ギ', 'ク', 'グ', 'ケ', 'ゲ', 'コ', 'ゴ','サ', 'ザ', 'シ', 'ジ', 'ス', 'ズ', 'セ', 'ゼ', 'ソ', 'ゾ', 'タ', 'ダ', 'チ', 'ヂ', 'ッ', 'ツ', 'ヅ', 'テ', 'デ', 'ト', 'ド', 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ','バ', 'パ', 'ヒ', 'ビ', 'ピ', 'フ', 'ブ', 'プ', 'ヘ', 'ベ', 'ペ', 'ホ', 'ボ', 'ポ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ャ', 'ヤ', 'ュ', 'ユ', 'ョ', 'ヨ', 'ラ', 'リ','ル', 'レ', 'ロ', 'ヮ', 'ワ', 'ヰ', 'ヱ', 'ヲ', 'ン', 'ヴ', 'ヵ', 'ヶ'};private static final String[] HANKAKU_KATAKANA = {"ァ", "ア", "ィ", "イ", "ゥ", "ウ", "ェ", "エ", "ォ", "オ", "カ", "ガ", "キ", "ギ", "ク", "グ", "ケ", "ゲ","コ", "ゴ", "サ", "ザ", "シ", "ジ", "ス", "ズ", "セ", "ゼ", "ソ", "ゾ", "タ", "ダ", "チ", "ヂ", "ッ", "ツ", "ヅ", "テ", "デ", "ト", "ド", "ナ", "ニ","ヌ", "ネ", "ノ", "ハ", "バ", "パ", "ヒ", "ビ", "ピ", "フ", "ブ", "プ", "ヘ", "ベ", "ペ", "ホ", "ボ", "ポ", "マ", "ミ", "ム", "メ", "モ", "ャ", "ヤ","ュ", "ユ", "ョ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ", "ワ", "イ", "エ", "ヲ", "ン", "ヴ", "カ", "ケ"};public static final char ZENKAKU_KATAKANA_FIRST_CHAR = ZENKAKU_KATAKANA[0];public static final char ZENKAKU_KATAKANA_LAST_CHAR = ZENKAKU_KATAKANA[ZENKAKU_KATAKANA.length - 1];// 全角假名转换为半角假名public static String zenkakuKkToHankakuKk(String str) {StringBuilder sb = new StringBuilder();for (int i = 0; i < str.length(); i++) {char originalChar = str.charAt(i);String convertedChar = zenkakuKatakanaToHankakuKatakana(originalChar);sb.append(convertedChar);}return sb.toString();}public static String zenkakuKatakanaToHankakuKatakana(char str) {if (str >= ZENKAKU_KATAKANA_FIRST_CHAR && str <= ZENKAKU_KATAKANA_LAST_CHAR) {return HANKAKU_KATAKANA[str - ZENKAKU_KATAKANA_FIRST_CHAR];} else {return String.valueOf(str);}}public static void main(String[] args) {// 全角假名转换为半角假名String result = zenkakuKkToHankakuKk("カ メイイ");System.out.println(result);  // カ メイイ}
}

⏹验证是否为半角假名

public class Test {public static final String BLANK = "";// 改行文字public static final String NEWLINE_CRLF = "\r\n";// 改行文字public static final String NEWLINE_LF = "\n";// 消除转义符public static String newLineEscape(String str) {if (str == null || BLANK.equals(str)) {return BLANK;}return str.replaceAll(NEWLINE_CRLF, BLANK).replaceAll(NEWLINE_LF, BLANK);}// 验证是否为半角假名public static boolean validateIsHanKatakana(String value) {if (value == null || BLANK.equals(value)) {return true;}String str = newLineEscape(value);char[] chars = String.valueOf(str).toCharArray();for (char aChar : chars) {if (!((0xFF61 <= aChar && aChar <= 0xFF9F) || 0x0020 == aChar)) {return false;}}return true;}public static void main(String[] args) {// 验证是否为半角假名System.out.println(validateIsHanKatakana("カ メイイ"));  // falseSystem.out.println(validateIsHanKatakana("カ メイイ"));  // true}
}

全角假名转换半角假名+验证是否为半角假名相关推荐

  1. sql select半角html全角,SQL转换全角和半角函数

    SQL转换全角和半角函数 CREATE FUNCTION f_Convert( @str NVARCHAR(4000), --要转换的字符串 @flag bit --转换标志,0转换成半角,1转换成全 ...

  2. js实现全角字符转换成半角字符

    在工作中用到将全角字符转换成半角的地方,就找了这个转换函数 //str:要转换的字符串 function DBC2SBC(str) {     var result="";     ...

  3. oracle全角改半角,Oracle全角数字转换半角数字

    Oracle全角数字转换半角数字 数据库表 test 字段 id name age 全角数字:1234 半角数字:1234 length和lengthb的区别: length(1234) 4 leng ...

  4. 将源代码中的全角符号转换成半角符号并对代码风格进行美化

    从网上拷下来的代码经常会出现全角符号,代码风格也很糟糕,可以用下面的方法进行修正美化. 1.安装astyle 2.写一个format.sh脚本 这里只是对空格还有数字.字母进行转换,可根据自己的需求再 ...

  5. C# 半角全角字符转换函数

    半角全角字符转换函数 public string ToSBC(string input) { //半角转全角: char[] c=input.ToCharArray(); for (int i = 0 ...

  6. 怎样让word里半角全角自由转换

    怎样让word里半角全角自由转换的设置 http://jingyan.baidu.com/article/f79b7cb3b2b1659144023e8a.html

  7. java全角空格转换半角空格

    这里主要区别就在于,全角字符串的getBytes()的字解码和半角字符串的getBytes()字节码不一样. 半角的 字节码是 32,全角的字节码是 -95-95 ,我们只需在这里给它都替换成 32 ...

  8. php 半角全角转换,php 把全角字符转换成半角

    经常遇到用户把英文字符或者标点符号写成了全角,有时候会导致系统无法识别,所以应该先把全角的字符全部转换成正常的半角,减少问题存在.其实原理很简单,也很笨吧,就是把所有的全角字符替换成对应的半角字符,摘 ...

  9. oracle 括号全角转半角,Oracle 表字段全角字符转换半角字符办法

    如何把oracle表中的全角字符转换为半角字符? a表包含全角字符的字段:address update a set a.address =(to_single_byte(a.address)) 执行, ...

  10. Oracle 表字段全角字符转换半角字符办法

    如何把oracle表中的全角字符转换为半角字符? a表包含全角字符的字段:address update a set a.address =(to_single_byte(a.address))执行,提 ...

最新文章

  1. 强化学习gym库中的Pendulum-v1/CartPole-v1游戏介绍
  2. 破解32位NT6内核系统(vista/win7 8G以上)的内存限制,完美支持4GB至128GB内存,全新教程!
  3. 【小练习03】CSS-表格(table)--天气预报
  4. docker,containerd,runc,docker-shim之间的关系
  5. 【转】WPF XAML X名称空间详解
  6. java聊天软件课程设计_[计算机课程设计] JAVA课程设计-聊天室
  7. 程序员杂志为啥没有了_计算机基础知识,程序员必备知识,java必会!新建一个TXT,发生了什么?...
  8. 对运算符重载的函数2
  9. python如何把二进制转文本_在python3中如何把文本转换为二进制
  10. HYSBZ1061题解
  11. 关于virtual pc安装Redhat
  12. 使用supervisor / systemctl nginx uwsgi 运行odoo
  13. 【渝粤教育】国家开放大学2019年春季 1349学前教育科研方法 参考试题
  14. vue导出数据为excel且设置样式
  15. java调用nlpir_ZH奶酪:Java调用NLPIR汉语分词系统
  16. TSINGSEE青犀视频开发AI人脸对比如何输出多个对比相似度的人脸?
  17. VR全景制作方法教程完整版
  18. 小程序下找地点、查路线、搜地铁,用这3个插件就够了!
  19. 测试用例是开发人员最后一块遮羞布
  20. python和工程造价_不会Python的将慢慢被淘汰!

热门文章

  1. paulzhou的数学?TAT? 【二分打表找规律】
  2. 奢侈品新星诞生了,能否打破现有的市场?
  3. SRv6网络编程:开启IP网络新时代 | 一文读懂SRv6 Policy
  4. 《中层变革》观看笔记
  5. 关于Android 设置Button 属性background失效问题
  6. Javac.cn 技术站论坛已经发布,正在进行人员招募中...
  7. android之多线程工作(二)handler messge机制
  8. 朴素贝叶斯(垃圾邮件分类)
  9. DIV怎么自动添加滚动条?并给滚动条添加样式
  10. 计算机专业考核表个人总结,本科计算机专业毕业自我鉴定及个人总结