Как достать дробные числа из файла?

398
23 сентября 2017, 21:52

Есть txt файл, в нем находятся слова, целые числа и дробные вперемешку. Подскажите, пожалуйста, как вытянуть оттуда только дробные числа?

Answer 1

Строку, после получения из файла, проверяете, как Вам уже посоветовали, регулярным выражением:

public static void main(String[] args)
{  
    System.out.println(checkWithRegExp("123,456"));  
    System.out.println(checkWithRegExp("45,9"));  
    System.out.println(checkWithRegExp("7.6"));  
    System.out.println(checkWithRegExp("0.78"));   
}  
public static boolean checkWithRegExp(String userNameString)
{  
    Pattern p = Pattern.compile("^\\d*[\\.\\,]\\d+$");  
    Matcher m = p.matcher(userNameString);  
    return m.matches();  
}

Как то так наверно. Учитывается только точка и запятая. А потом уже парсите строку средствами double Java.

Answer 2

Построчно читаете файл и проверяете каждую строку по регулярному выражению line.matches("^(\\d)*([\\,\\.]){1}(\\d){1,}$").

Поэкспериментировать с регулярными выражениями можно здесь: Java Regular Expression Tester.

Пример ниже (могут быть ошибки, не компилировал):

FileInputStream fis = new FileInputStream("C:/sample.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String line;  
while((line = br.readLine()) != null) {
  if(line.matches("^(\\d)*([\\,\\.]){1}(\\d){1,}$")) {
    System.out.println("Бинго! Дробное число = " + line);
  }
}
READ ALSO
Как создать в программе txt

Как создать в программе txt

Здравствуйте, у меня такой вопрос, как создать в программе текстовый файл, который после запуска появится в той директории в которой, открыл...

275
(x = x + y) или (x += y) — отличия в приведении типов

(x = x + y) или (x += y) — отличия в приведении типов

Столкнулся с таким вот свойством сложенияУ нас есть две переменные:

178
Вывод буквы при нажатий на кнопку

Вывод буквы при нажатий на кнопку

Добрый деньКак сделать типичный Logo quiz app, чтобы при нажатий на буквы textview заполнялся и проверял ответ

231
Java jax-rs response - Java EE return list

Java jax-rs response - Java EE return list

Не могу разобраться с java jax-rs responseЕсть вот такой вот код:

274