波斯马BOSSMA Information Technology

java中全角转换为半角的方法

发布时间:2007年9月3日 / 分类:JAVA / 12,096 次浏览 / 评论

在获取文本的时候,经常遇到数据格式的问题,需要判断或转换。
本文旨在解决全角符号转换为半角符号的问题。

网上大体有两种方法:转换编码或者替换。
我使用的是转换编码,引用自:http://blog.csdn.net/dpuser/archive/2005/10/19/509146.aspx

string checkStr="123456";
//判断是否包含全角字符[1]
if(checkStr.length() != checkStr.getBytes().length){

//添加处理....

}
//判断是否包含全角字符[2]
if(!checkStr.equals("")&&!isEnna(checkStr)){

//添加处理....

}
//判断是否半角
private boolean isEnna(String p) {
	int length = p.length();
	boolean b = true;
	;
	for (int i = 0; i < length; i++) { 	    char c = p.charAt(i); 	    if (c > 255) {
		b = false;
		break;
	    }
	}
	return b;
    }

//全角转半角
private static final String QBchange(String QJstr) {
	     String outStr="";
	     String Tstr="";
	     byte[] b=null;

for(int i=0;i<QJstr.length();i++)
{
  try
  {
    Tstr=QJstr.substring(i,i+1);
    b=Tstr.getBytes("unicode");
  }
  catch(java.io.UnsupportedEncodingException e)
  {
    e.printStackTrace();
  } 

  if (b[3]==-1)
  {
    b[2]=(byte)(b[2]+32);
    b[3]=0; 

    try
    {
      outStr=outStr+new String(b,"unicode");
    }
    catch(java.io.UnsupportedEncodingException e)
    {
      e.printStackTrace();
    }
  }else outStr=outStr+Tstr;
}
return outStr;
}

不知道以上方法有没有漏洞,欢迎指教!

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自波斯马,原文地址《java中全角转换为半角的方法

关键字:

建议订阅本站,及时阅读最新文章!
【上一篇】 【下一篇】

目前有1 条评论

  1. 高さん 0楼:

    如果是半角“\”转换为全角“¥”就报错了,这个问题怎么解决,而且如果是日文的半角全角转换就不行了,例如:????->????

发表评论