全形轉半形,JAVA對中文的處理

來源:互聯網
上載者:User

  最近在做中文處理時,遇到了 全形半形 轉換的問題,於是到網上搜了一下,問題基本上得到解決,但是發現沒有對全形空格,和半形空格做轉換處理,而且 半形轉全形的代碼有bug,下面是修改後的代碼:首先,全形與半形有什麼區別?全形佔兩個位元組,半形佔一個位元組。 半形全形主要是針對標點符號來說的,全形標點佔兩個位元組,半形佔一個位元組,而不管是半形還是全形,漢字都還是要佔兩個位元組 Java代碼 .然後,我們來看一下轉碼

 

import java.io.UnsupportedEncodingException;public class FullCharConverter {public static void main(String[] args) throws UnsupportedEncodingException {// 全形轉半形String QJstr = "hello!! 全形轉換,DAO 53232 ";String result = full2HalfChange(QJstr);System.out.println(QJstr);System.out.println(result);System.out.println("------------------------------------");// 半形轉全形String str = "java 汽車 召回 2345";System.out.println(str);System.out.println(half2Fullchange(str));}// 全形轉半形的 轉換函式public static final String full2HalfChange(String QJstr)throws UnsupportedEncodingException {StringBuffer outStrBuf = new StringBuffer("");String Tstr = "";byte[] b = null;for (int i = 0; i < QJstr.length(); i++) {Tstr = QJstr.substring(i, i + 1);// 全形空格轉換成半形空格if (Tstr.equals(" ")) {outStrBuf.append(" ");continue;}b = Tstr.getBytes("unicode");// 得到 unicode 位元組資料if (b[2] == -1) {// 表示全形?b[3] = (byte) (b[3] + 32);b[2] = 0;outStrBuf.append(new String(b, "unicode"));} else {outStrBuf.append(Tstr);}} // end for.return outStrBuf.toString();}// 半形轉全形public static final String half2Fullchange(String QJstr)throws UnsupportedEncodingException {StringBuffer outStrBuf = new StringBuffer("");String Tstr = "";byte[] b = null;for (int i = 0; i < QJstr.length(); i++) {Tstr = QJstr.substring(i, i + 1);if (Tstr.equals(" ")) {// 半形空格outStrBuf.append(Tstr);continue;}b = Tstr.getBytes("unicode");if (b[2] == 0) {// 半形?b[3] = (byte) (b[3] - 32);b[2] = -1;outStrBuf.append(new String(b, "unicode"));} else {outStrBuf.append(Tstr);}}return outStrBuf.toString();}}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.