2011-08-22 4 views
0

私はこのコードを使用して、1行ずつtxtファイルを読み込みます。Java:txtファイルを読み込んで文字列の配列に保存しますが、バックスラッシュ(スペース)は付けないでください。

// Open the file that is the first command line parameter 
FileInputStream fstream = new FileInputStream("/Users/dimitramicha/Desktop/SweetHome3D1.txt"); 
// Get the object of DataInputStream 
DataInputStream in = new DataInputStream(fstream); 
BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
String strLine; 
// Read File Line By Line 
int i = 0; 
while ((strLine = br.readLine()) != null) { 
    str[i] = strLine; 
    i++; 
} 
// Close the input stream 
in.close(); 

とそれを配列に保存します。

その後、配列に保存した文字列についてif文を作成したいと思います。しかし、私がそれをすると、(私が思ったように)スペース(バックスラッシュ)も保存するので、うまくいきません。データを配列に保存するにはどうしたらよいですか?

答えて

1

は私がするだろう:あなたはしたくない他の文字を見つけた場合

strLineWithoutSpaces = strLine.replace(' ', ''); 
str[i] = strLineWithoutSpaces; 

はまた、より多くの置き換えを行うことができます。

+0

私は文字列を試しましたstrLineWithoutSpaces = strLine.replace( ""、 ""); str [i] = strLineWithoutSpaces;しかしそれはまだ正しくはありません... – Mitsaki

+0

これをさらに調べた後、私はこの作品が見つかりました:strLine.replaceAll( "\\ s +"、 "");空白の削除をもっと深く(真ん中ではない)したいのであれば、このリンクをチェックしてください:http://stackoverflow.com/questions/2932392/java-how-to-replace-2-or-more-spaces-with -single-space-in-string-and-delete-leadi –

+0

まだ、すべてのブランクが消えていません...私はreplaceAll( "^ + | + $ |()+"、 "$ 1"投稿は示唆している。 – Mitsaki

0

Stringreplaceメソッドを見て、それを配列に入れる前にstrLineと呼んでください。

0

デフォルトでは空白を使用してトークンを区切るScannerを使用できます。 thisチュートリアルをご覧ください。