当前位置: 首页 > news >正文

Java 全角半角假名转换以及验证

目录

  • 一. 全角假名转换半角假名
  • 二. 验证是否为半角假名
  • 三. 通过`icu4`库进行处理

一. 全角假名转换半角假名

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

二. 验证是否为半角假名

publicclassTest{publicstaticfinalStringBLANK="";// 改行文字publicstaticfinalStringNEWLINE_CRLF="\r\n";// 改行文字publicstaticfinalStringNEWLINE_LF="\n";// 消除转义符publicstaticStringnewLineEscape(Stringstr){if(str==null||BLANK.equals(str)){returnBLANK;}returnstr.replaceAll(NEWLINE_CRLF,BLANK).replaceAll(NEWLINE_LF,BLANK);}// 验证是否为半角假名publicstaticbooleanvalidateIsHanKatakana(Stringvalue){if(value==null||BLANK.equals(value)){returntrue;}Stringstr=newLineEscape(value);char[]chars=String.valueOf(str).toCharArray();for(charaChar:chars){if(!((0xFF61<=aChar&&aChar<=0xFF9F)||0x0020==aChar)){returnfalse;}}returntrue;}publicstaticvoidmain(String[]args){// 验证是否为半角假名System.out.println(validateIsHanKatakana("カ メイイ"));// falseSystem.out.println(validateIsHanKatakana("カ メイイ"));// true}}

三. 通过icu4库进行处理

  • 官方Github:https://github.com/unicode-org/icu

🔷pom依赖

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

🔷代码

importcom.ibm.icu.text.Transliterator;⏹全角转换半角Transliteratorliterator1=Transliterator.getInstance("Fullwidth-Halfwidth");literator1.transliterate("カナ");// カナ⏹半角转换全角Transliteratorliterator2=Transliterator.getInstance("Halfwidth-Fullwidth");literator2.transliterate("カナ");// カナ⏹平假名转换片假名Transliteratorliterator4=Transliterator.getInstance("Hiragana-Katakana");literator4.transliterate("なし");// ナシ⏹片假名转换平假名Transliteratorliterator3=Transliterator.getInstance("Katakana-Hiragana");literator3.transliterate("カナ");// かな
http://www.jsqmd.com/news/909482/

相关文章:

  • 2026年甄选:口碑好的不锈钢钣金加工定制厂家 - 品牌推广大师
  • 202 郑州名包回收指南:正规渠道怎么选、估价逻辑与安心变现要点 - 薛定谔的梨花猫
  • Claude商业分析报告交付延迟率高达47%?——3大架构级瓶颈诊断工具+实时流式响应改造方案(已验证于金融/零售双行业)
  • 四个点扫描举例
  • 告别基础材料库!CST高级材料建模实战:手把手教你创建频变吸波材料与自定义各向异性介质
  • 从Prompt工程到思维链:10个技巧构建AI协同工作流
  • 特斯拉绕开,英伟达强攻!但 99% 的机器人操作能力,都逃不过这两种…
  • 手把手复现RRT*优化过程:用Python可视化理解‘重布线’与椭圆采样
  • Keil µVision调试器中AINx VTRegs的应用与信号模拟技巧
  • 2026年国产瓶盖自动生产线厂家选型攻略:三步锁定最适合你的那家 - 品牌2025
  • 5分钟从零开始:用RVC-WebUI实现专业级AI语音克隆转换
  • 破解百度网盘API认证难题:BaiduPanFilesTransfers中bdstoken获取失败的3种解决方案深度解析
  • 对比使用Taotoken前后项目AI模块的接入效率与维护复杂度变化
  • 辽宁质量流量计厂家合规盘点:选型参考名录 - 奔跑123
  • Go语言与人工智能:入门与实战
  • Windows下Nginx配置SSL实现Https访问(包含证书生成)
  • 免费证件照制作免费入口在哪?2026微信小程序+在线工具汇总 - 科技大爆炸
  • FileZilla Server安装配置避坑全记录:从用户权限到防火墙设置,一次搞定
  • 告别无声播放:LRCGET如何为离线音乐库注入灵魂
  • 告别景深烦恼:用Python和PyTorch实战多聚焦图像融合,5分钟生成全清晰照片
  • DPPE-PEG-N3 磷脂-PEG-叠氮 相关问题及解答
  • 云南省临沧CPPMSCMP官网报考入口,官方授权双证报考中心 - 众智商学院课程中心
  • 中文文献元数据智能解析引擎:Jasminum插件技术架构与实现深度解析
  • 信号预处理避坑指南:你的Savitzky-Golay滤波器参数真的选对了吗?
  • Windows 10/11 HEIC缩略图预览终极指南:告别iPhone照片无法预览的烦恼
  • CANoe.DiVa的应用——生成测试用例过程流程详解(一)
  • 2026年苏州BS10012个人数据保护认证机构选型指南 - 资讯焦点
  • 福建学历提升机构该怎么选:致学教育领跑,五大机构深度测评 - 知行乐学向善
  • 手把手教你创建CST自定义材料:以导入厂家吸波材料S参数为例(附曲线设置避坑点)
  • 从Halton到Sobol:一文搞懂低差异序列家族,以及如何在Unity/Unreal引擎中应用