Найти подстроку и оценить выражение - PullRequest
0 голосов
/ 01 февраля 2019

Я работаю над тем, что, вероятно, является основами Java, но я все еще не понимаю даже после прочтения некоторой документации.

У меня есть файл CSV, который я читаю в переменную sTokens строка за строкой.В каждой строке мне нужно проверить значение в элементе [0] и сравнить его с тем, что мне нужно там.

У меня есть массив таких строк:

String [] sTokens = {"elem1", "elem2"};

Следующее не работает должным образом:

if (sTokens[0].indexOf("texttofind".toLowerCase())>=10) {
   //do something
}

Я ожидаю, что вычисленное выражение вернет число (в данном случае 10 или в худшем случае -1), а затем сделает что-то на основе возвращенного числанапример, 10 означает, что я нашел то, что мне было нужно.

Я использую инструмент отладки в Netbeans, и когда я вычисляю выражение в скобках, он возвращает 10 (как и положено).

К сожалению, и здесь, вероятно, моя ошибка, выражение оценивается как NULL.

Любая помощь будет высоко ценится lorenz

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Вы используете indexOf неправильно.Если это то, что у вас есть:

String [] sTokens = {"elem1", "elem2"};

И вы запустите свой код следующим образом:

System.out.println(sTokens[0].indexOf("el".toLowerCase()));

Он выведет 0, потому что в sTokens [0] содержится «el», начиная синдекс 0.

Если вы запустите это:

System.out.println(sTokens[0].indexOf("em".toLowerCase()));

Будет напечатано 2, потому что «em» начинается с индекса 2.

0 голосов
/ 01 февраля 2019

Я предполагаю, что sTokens могут быть в верхнем регистре. Попробуйте сделать это

String[] sTokens = {"Hello","TestC"};
if(sTokens [0].toLowerCase().indexOf("llo")>=2){
     //do something
}
...