0

ファイルに入力があり、形式にいくつかの数値があります

106,648|403,481 747,826|369,456 758,122|365,637 503,576|808,710 325,374|402,513

番号を106,648 403,481 747,826 ..などのようにフォーマットしたくないのですが、これを行うことができません

public class MidPointSum {

public static void main(String[] args) {

    File file=new File("D:/midpoint.txt");

    try{

        Scanner sc=new Scanner(file);

            while(sc.hasNext()){

                String value=sc.next();

                String getVal[]=value.split("|");
                for(int i=0;i<getVal.length;i++){

                    System.out.println(getVal[i]);
                }

            }

    }catch(FileNotFoundException e){
        System.err.println("File is not Found");
    }catch (Exception e){
        System.err.println("Another Exception");
    }

}

しかし、私は望ましい出力を得ていません.誰かが私を助けてください..

4

2 に答える 2

2

Java の分割は正規表現を使用するため、エスケープ パイプを二重にする必要があります。

String[] getVal=value.split("\\|");

それが単純な正規表現である場合は、とにかくエスケープする必要がありますが、Java では、およびのような文字のため、 string 内"\"特殊文字であるため、二重エスケープになります。\t\n

于 2013-06-01T01:44:27.450 に答える
1

|は正規表現のメタ文字であり、エスケープする必要があります。試してください"\\|"

于 2013-06-01T01:45:31.257 に答える