2015-10-01 91 views
-1

我在嘗試此代碼,但它似乎不起作用。從文件中刪除多餘的空格

我已經初始化了字符串,但是沒有初始化它。

而不是replaceAll(),任何其他有效的方法()或代碼將不勝感激。謝謝!

import java.io.*; 
class Rspace 
{ 
    public static void main(String args[]) throws IOException 
    { 
     int arr[] = new int[3]; 
     if(arr.length<2) 
      { 
       System.out.print("Parameters are missing"); 
       System.exit(0); 
      } 
     if(arr.length>2) 
      { 
       System.out.print("No. of parameters are exceeded"); 
       System.exit(1); 
      } 
     File f = new File(args[0]); 
     if(!f.exists()) 
      { 
       System.out.print("File does not exists"); 
       System.exit(2); 
      } 
     FileInputStream fis = new FileInputStream(args[0]); 
     FileOutputStream fos = new FileOutputStream(args[1]); 
     int ch; 
     String str; 
     while((ch=fis.read())!=-1) //Reading character & returning ASCII value;shifting to next character 
      { 
       fos.write(ch); 
       str.replaceAll("\\s",""); //Removes all WhiteSpaces 
      } 
      fis.close(); 
      fos.close();  
    } 
} 
+0

當你調用'replaceAll'時,你認爲'str'有什麼價值?你爲什麼這麼認爲? –

+3

這甚至不是問題。 'str''永遠不會被賦值,它保持單位。 – f1sh

+3

你正在讀單個字符,然後突然處理字符串。 – ergonaut

回答

0

如果你想擺脫空格的,那麼你可以這樣做的:

import java.io.*; 

class Rspace { 
    public static void main(String args[]) throws IOException { 
     int arr[] = new int[3]; 
     if (arr.length < 2) { 
      System.out.print("Parameters are missing"); 
      System.exit(0); 
     } 
     if (arr.length > 2) { 
      System.out.print("No. of parameters are exceeded"); 
      System.exit(1); 
     } 
     File f = new File(args[0]); 
     if (!f.exists()) { 
      System.out.print("File does not exists"); 
      System.exit(2); 
     } 
     FileInputStream fis = new FileInputStream(args[0]); 
     FileOutputStream fos = new FileOutputStream(args[1]); 
     int ch; 
     boolean lastSpace = false; 
     while ((ch = fis.read()) != -1) // Reading character & returning ASCII 
             // value;shifting to next character 
     { 
      if (!Character.isWhitespace(ch)) { 
       fos.write(ch); 
       lastSpace = false; 

      } else if (!lastSpace) { 
       fos.write(ch); 
       lastSpace = true; 
      } 
     } 
     fis.close(); 
     fos.close(); 
    } 
} 

你不需要用繩子的東西。對於空格,我添加了一個布爾變量來檢查我們是否有空間。 我希望它有幫助。