if (nextLine.contains(STARTS_OF_FRAGMENT)) {
while(sc.hasNext()) {
try {
nextLine = sc.nextLine();
split = nextLine.split("\\t");
TIME_IN_MS = split[0];
for(i=0;i<10;i++) {
int a = map_BD.get(map_track.get(i));
if (a == 1) {
EKG_1 = split[i+1];
System.out.println(EKG_1+" EKG_1");
}
if (a == 2) {
L_FINGER = split[i+1];
System.out.println(L_FINGER+" L_Finger");
}
if (a == 3) {
L_FINGER_D = split[i+1];
System.out.println(L_FINGER_D+" Палец_L _D");
}
if (a == 4) {
KGR = split[i+1];
System.out.println(KGR+" КГР");
}
if (a == 5) {
ABDOMEN = split[i+1];
System.out.println(ABDOMEN+" Живот");
}
if (a == 6) {
FZ_A1_L = split[i+1];
System.out.println(FZ_A1_L+" Fz-A1_L");
}
if (a == 7) {
PZ_A2_L = split[i+1];
System.out.println(PZ_A2_L+" Pz-A2_L");
}
if (a == 8) {
SPO2_L = split[i+1];
System.out.println(SPO2_L+" SpO2_L");
}
if (a == 9) {
SPO2_L_D = split[i+1];
System.out.println(SPO2_L_D+" SpO2_L _D");
}
if (a == 10) {
OEMG = split[i+1];
System.out.println(OEMG+" ОЭМГ");
}
}
}catch (NumberFormatException ex) {//если строка содержит символы(не цифры, то программа их прoпускает и продолжает работу)
continue;
}
}
}
При проходе по этой части кода возникает ошибка. Всё хорошо считывается при проходе первого фрагмента, дальше же возникает ошибка, возможно дело в пустой строчке?
Файл, с которого читается, выглядит так(маленькая выемка):
10552 0,01175 -0,104375 -0,2375 -0,198364 -0,9125 8,5 6,125 0,761875 -0,26375 -0,0133438 10556 -0,011 -0,105 -0,0875 -0,180054 -0,9375 10,25 6,75 0,741875 -0,26375 -0,0133438 10560 -0,0285 -0,105 0,1 -0,164795 -0,9625 9,25 7,125 0,72125 -0,26375 -0,0133438
// Информация по фрагменту Время(мс) 0 1 2 3 4 5 6 7 8 9 0 -0,00475 -0,104375 0,3 -0,149536 -0,9875 6,75 6,375 0,70125 -0,26375 -0,0133438 4 0,01875 -0,1025 0,45 -0,132751 -1,0125 4,75 4,25 0,680625 -0,264375 -0,0133438 8 0,009 -0,100625 0,525 -0,117493 -1,0375 4,5 1,25 0,660625 -0,264375 -0,0133438
NumberFormatException
-- но откуда оно возьмется? Вы нигде не преобразуете строковые значения в числовые, ведь переменные типа ABDOMEN
у вас строковые? Я бы вообще данные разных участков описал в виде перечисления, элементы такого перечисления могут сами отвечать за обработку своих данных. Из вашего фрагмента неясен контекст, но может быть, что-то в таком роде:
// Описание данных
public enum AreaData {
EKG_1 ("EKG_1"),
L_FINGER_D ("Палец_L_D"),
KGR ("КГР"),
ABDOMEN ("Живот"),
FZ_A1_L ("Fz-A1_L"); // И прочие, какие нужно, подобным образом
private String caption;
private String dataValue;
private AreaData(String caption) { this.caption = caption; }
// Обработать данные - сохранить у себя и распечатать
public void acceptData(String value) {
dataValue = value;
System.out.println(caption + ": " + dataValue);
}
public String getData() { return dataValue; }
}
// Порядок данных в строке. Индекс в массиве соотв. позиции в строке,
// элемент массива -- ссылка на тот тип данных, который стоит в этой позиции
private final AreaData[] dataOrderMap = new AreaData[] {
AreaData.KGR, AreaData.EKG_1, AreaData.FZ_A1_L,
AreaData.L_FINGER_D, AreaData.ABDOMEN, // Поставить нужный порядок и дополнить как нужно
};
// Получает очередную строку из файла или откуда вам надо
public void processString(String s) {
String[] ss = s.split("\t");
for (int i = 0; i < ss.length; i++)
if (i < dataOrderMap.length) // Данные в этой позиции допустимы
dataOrderMap[i].acceptData(ss[i]); // Данные отдаются нужному обработчику
else // иначе ругаемся
System.out.format("Extra data '%s' at index %d\n", ss[i], i);
}
При таком подходе к этим данным при необходимости можно будет что-то добавлять, не ломая кода основной обработки. Только надо не забывать перед обработкой очередной строки очистить все данные -- для этого в перечислении можно сделать отдельный статический метод.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня есть RecyclerViewЯ добавил библиотеку от Google на Flexbox и сделал так:
Дописав в buildgradle строчку minifyEnabled true , при сборке apk выкидывает ошибку:
Учусь работать с DrawerLayoutДля обработки выбора элемента списка создал класс DrawerItemClickListener наследующий от ListView
Я не понимаю разницы между TDLib и TelegramAPIЯ работаю с Java и мне удалось найти реализации: для TDLib и для TlgrmAPI