大家好:
最近在做东西时遇到点问题,读取文本文件中的一行后,想用string.trim()去除首尾空格,可是发现无法去除,年个ultraedit一看,是个双字节的空格,请问各位有什么好的解决办法吗?

解决方案 »

  1.   

    那说明那个空格是全角的,而不是半角的。
    刚才我也试了一下,确实不一样。
    因此你可以把这个全角的转换成半角的就可以了,然后再用trim.()
      

  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
      

  3.   

    以上是一个全角和半角相互转换的函数以及相应的测试。
    在实际过程中,你可以把读取的每一行数据作为一个string 然后就调用上面的函数进行转换!
      

  4.   

    如果只是仅仅需要转化全角的空格的话,可以这样实现while ( (line = br.readLine() ) ! = null ) {
        line = line.replace((char)12288,' ') ;//全角空格转化成半角空格
        line = line.trim() ;//即可却掉首尾全角半角空格
    }
      

  5.   

    replaceAll(" ","");
    只要第一个参数是全角空格
      

  6.   

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

  7.   

    回复人: jFresH_MaN(Contributing to Eclipse) ( ) 信誉:342  2005-10-22 16:34:06  得分: 0  
       
    replaceAll(" ","");
    只要第一个参数是全角空格 --------------------------------------------------------这样的话好像会把非首尾的全角空格也转化掉的