2016-06-23 12 views
-1

ファイルの数値の内容を追加する必要があります。 トリッキーな部分は数字のコンテンツも添付できます。Javaのファイルから数値データを読み取る

たとえば、abc123、123abc、またはabc123defというフレーズは123として扱う必要があります。また、abc123.4または123.4abcまたはabc123.4abcは123.4と見なす必要があります。数字にドット以上の数字が含まれる場合、有効な数値とみなされ、無視されるべきです。

+1

を使用するために、コメントに置き換え、これを試してみて、私たちとあなたの家の仕事を共有しないでください。 – Ajit

+0

123abc345の予想される結果は何ですか? – user3185569

+0

ここにコードを記入してください。 – Kaushal28

答えて

1

独自のファイルの代わりに、文字列

// Use this instead when you want to try with your own file 
    // String source = new String(Files.readAllBytes(Paths.get(filePath))); 

    String source = "23 , 23.2 asf 2asfd 2.3asf"; 
    source = source.replaceAll("[^0-9\\.]+", " "); 

    double accumulator = 0; 

    try (Scanner doubleScanner = new Scanner(source)) { 
     doubleScanner.useLocale(Locale.US); 
     while (doubleScanner.hasNextDouble()) { 
      double num = doubleScanner.nextDouble(); 
      System.out.println("Found :" + num); 
      accumulator += num; 
     } 
    } 
    System.out.println("Sum :" + accumulator); 

プリント

Found :23.0 
Found :23.2 
Found :2.0 
Found :2.3 
Sum :50.5 
関連する問題