在获取文本的时候,经常遇到数据格式的问题,需要判断或转换。
本文旨在解决全角符号转换为半角符号的问题。
网上大体有两种方法:转换编码或者替换。
我使用的是转换编码,引用自: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
{
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;
}
不知道以上方法有没有漏洞,欢迎指教!
本博客所有文章如无特别注明均为原创。