от
Я пытаюсь получить значения из построителя строк, где я преобразовал построитель строк в строку, чтобы получить значения, но не помог в извлечении определенных значений. Мой вывод String Builder,
SN: 00486  Mode:     1
Temp. 15.4 C
Fat............... 0.0%
SNF............... 0.4%
ну а дальше заменили на такие символы, как,
    String i = stringBuilder.toString();
    i = i.replaceAll("[^\\d.]", "");
вот мой вывод,
    004861.15.4...............0.0...............0.4
Я ожидаю, что мой вывод получит только те значения (цифры) Temp, Fat и SNF, как я могу преодолеть эти точки с моими десятичными точками, если я использую какие-либо циклы? Пожалуйста, помогите мне кто-нибудь. Ожидаемый результат, 15 (две цифры) от Temp, 0,0 от жира и 0,4 от SNF.              

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

3 Ответы

0 голосов
от
попробуйте это, хотя это некрасивый кусок кода
StringBuilder sb=new StringBuilder("SN: 00486  Mode:     1\n"  
            "Temp. 15.4 C\n"  
            "Fat............... 0.0%\n"  
            "SNF............... 0.4%");
    String str=sb.toString();

    str=str.replace("%","").replace("\n"," ");

    String[] splt=str.split(" ");

    String fullStr="";

    for (String st: splt ) {

        try {
            Double num=Double.parseDouble(st);
            fullStr =num.toString() "\n";

        }catch (Exception ex){

        }

    }

    System.out.println(fullStr);
здесь все числа разделены. и вы можете отделить свой желаемый тоже. если вам нужно разъяснение, пожалуйста, спросите.     
0 голосов
от
Ну, я заменил код небольшим изменением, как i = i.replaceAll ("[^ \ d]", ""); где я получил результаты как 00486117000240241040719 который я потом изменил, преобразовав в int [] и получив позиции моих значений, спасибо за ваш ответ всем.     
0 голосов
от
лучше считывать искомые значения с шаблоном
Pattern snpat = Pattern.compile( "(?
...