java操作字符,java全角轉半角

原來在頁面用fckediter編輯信息,爲了信息美觀,信息提交時需要對信息內容進行全角到半角的轉換,

有時候如果信息兩太大的話處理非常慢,懷疑是js處理太慢了,

有個想法,在java裏面處理信息內容,不在js裏面處理。

 

想法挺好,但是在網上還真沒有找到需要的資源,基本上都是一個資源的拷貝粘貼,絕得很無聊,

 

不扯那麼遠了,

 

網上確實有一個例子,但是沒有解決我的問題,

 

算了 還是自己寫吧,

 

 

package com.hung.test;

/**
 * 全角轉半角
 * @author hung
 *
 */
public class MyQB {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String qs = "1 2	3·4657890qazwsxedcrfvtgbyhnujmkilo,。、;‘’\】【";
		String rqs = Q2BChange(qs,true);
		System.out.println(qs + "\n" + rqs);
		
	}

	private static String Q2BChange(String input,boolean flag) {
		String result = "";
		char[] str = input.toCharArray();
		for(int i=0;i<str.length;i++ ){
			int code = str[i];//獲取當前字符的unicode編碼
			 if (code >= 65281 && code <= 65373)//在這個unicode編碼範圍中的是所有的英文字母以及各種字符
			  {
			   result +=(char)(str[i] - 65248);//把全角字符的unicode編碼轉換爲對應半角字符的unicode碼
			  }else if (code == 12288)//空格
			  {
			   result +=(char)(str[i] - 12288 + 32);
			  }else if(code == 65377){
				  result +=(char)(12290);
			  }else if(code == 12539){
				  result +=(char)(183);
			  }else if(code == 8482 && flag==true){//如果是特殊字符TM 並且是需要轉換的所作操作
			  	
			  }else if(code ==8226){ //特殊字符 ‘·’的轉化
				  result += (char)(183);
			  }else{
			   result += str[i];
			  }
		}
		
		return result;
	}

}

 

 多了不多說,直接看效果 

 

親 請看附件 

 

保證真是有效 


 

 

-----------------------------------------------------------2012-09-04--------------------------------------------------------

多謝  ydsakyclguozi  指出上面有一個問題:中文狀態下,單引號全角轉半角失敗

 

下面說明一下原因:

 

我是用的是中文全角打印的上面字符,轉換之後是半角的,但是看着好像和沒轉一樣。
但是我試了一下,中文的單引號全角和半角是一樣的,所以這個可以說不是程序的問題,是中文字符的問題
在英文狀態下單引號的全角和半角可以轉換。

 

再次表示感謝 。

 

 

  • ad471ea2-bb4f-3eff-83ce-0eb5c77fdb9e-thumb.png
  • 大小: 8.4 KB
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章