全角转换成半角

来源:互联网 发布:台灯 护眼 知乎 编辑:程序博客网 时间:2024/04/25 16:54

import java.io.*;
import EService.Utility.*;
import EService.Resource.*;
import EService.ePlatform.*;
import EService.Utility.*;

/*以下方法适用于unix下*/
public class newtest
{
 public static void  main(String[] args)
 {

     System.out.println(DBC2SBC(DB("aabcd阿福福")));
     System.out.println(DBC2SBC("abcd新建文本文档"));
      System.out.println(DBC2SBC("阿福福"));
      System.out.println(DBC2SBC(DB("1111111123456你好nihao2tttyyy123456789!@#$%︿&*(阿福福")));
     
     

  
               


 }

/*屏蔽全角字符,最后替换所有!*/

private static String DBC2SBC(String str)
 {       String ret="";
  
  int k=0;
  
  for (int i = 0; i < str.length(); i++) {
   int j = str.charAt(i);
System.out.println(j);
         
   if(i>0){
   k=str.charAt(i-1);
   }
   
   if((j==163)&&(i%2==0)){ 
         continue;
   }else
   {//&&((i-1)%2==0)
    if((j>=128)&&(k==163)&&((i-1)%2==0)){
     ret += (char) (j-128);

    }
    else if(j>128)
    {
     }
    else{
    ret += (char) (j);
    }
   }
   
  }
  ret = UT.strReplace(ret, "!","");
  return ret;
  
 }

/*补齐字符串为偶数位,a变为!a,其他原样输出*/

private static String DB(String str) {
    String ret = "";
    int k = 0;
    for (int i = 0; i < str.length(); i++) {
     System.out.println(i);
      int j = str.charAt(i);
       if(i<(str.length()-1)){
   k=str.charAt(i+1);
   }
   else{
   k=0;
   }
      if (j < 128) {
ret=String.valueOf(new StringBuffer(ret).append("!").append((char)(j)));
      }else
      {
                 
       ret=String.valueOf(new StringBuffer(ret).append((char)(j)).append((char)(k)));
       i=i+1;
       continue;
       }

    }
    return ret;
  }
}