1

次のtxtファイルからコンマを削除しようとしています:

abcd,efgh,ijkl
mnop,qrst,uvwx
yzzz,0123,4567
8910

私のコードは次のようになります。

public static ArrayList readFileByLine(ArrayList list, String fileName){
try{
    File file = new File(fileName);
    Scanner reader = new Scanner(file);
    reader.useDelimiter(",");
    while(reader.hasNext()){
      String s = reader.next();
      s= s.trim();
      s= s.replaceAll("," , "");
      list.add(s);
    }
    reader.close();
}
catch(FileNotFoundException e){ System.err.println("Error: " + e.getMessage());}

return list;

}

絶対に必要でない限り、正規表現を使用しないようにしています。正規表現を使用することをお勧めする場合は、それが何をするのか説明してください! 助けてくれてありがとう!

4

1 に答える 1

1

あなたのコードは正常に動作します。他の問題に遭遇していたと思いますが、何がわかりません。これが私が使用したコードです(いくつかの変更を加えたコード):

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        List<String> list = readFileByLine(new ArrayList<String>(), "/Users/hassan/Library/Containers/com.apple.TextEdit/Data/Desktop/file.text");
        for(String s : list){
            System.out.println(s);
        }
    }

    public static List<String> readFileByLine(ArrayList<String> list, String fileName){
        try{
            File file = new File(fileName);
            Scanner reader = new Scanner(file);
            reader.useDelimiter(",");
            while(reader.hasNext()){
              String s = reader.next();
              s= s.trim();
              s= s.replaceAll("," , "");
              list.add(s);
            }
            reader.close();
        }
        catch(FileNotFoundException e){ System.err.println("Error: " + e.getMessage());}

        return list;
    }
}

このコードは動作します (試してみてください!)。関数の先頭で新しい ArrayList を作成するだけでよいため、最初の引数として ArrayList を渡すこのコードの使用方法は役に立たないことに注意してくださいreadFileByLine。後で配列に文字列を再度追加する必要があるため、このようにしたかどうかはわかりません。そのため、そのままにしておきました。

于 2012-04-29T03:29:41.857 に答える