java 去除双字节空格问题

 java 去除双字节空格问题

string.trim()只能对单字节的字符串的首尾空格器作用,但是双字节的就不行了!

这里提供了两种解决方案:(都来源于网络)

 

1>去首尾空格,不管是全角半角:
String str="  w w ";
String newStr=str.replaceAll("(^[ | ]*|[ | ]*$)","");
System.out.println(newStr);

2>提供全角半角转换方法

public class Test
{
public static void main(String [] args)
{
String QJstr="HELLO";
String QJstr1="HELLO";

String result=BQchange(QJstr);
String result1=QBchange(QJstr1);

System.out.println(QJstr+"/n"+result);
System.out.println(QJstr1+"/n"+result1);


}

//半角转全角
public static final String BQchange(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]=-1;
try
{
outStr=outStr+new String(b,"unicode");
}
catch(java.io.UnsupportedEncodingException e)
{
e.printStackTrace();
}
}
else outStr=outStr+Tstr;
}

return outStr;
}


//全角转半角
public 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;
}

}

输出结果为:

HELLO
HELLO
HELLO
HELLO

你可能感兴趣的:(java,String,网络,null,Class,byte)