我正在研究一些可能是java基础知识的东西,但即使在阅读了一些文档后我仍然不明白。
我有一个 csv 文件,我将其逐行读入 sTokens 变量。在每一行,我需要检查元素 [0] 中的值并将其与我需要的值进行比较。
我有一个像这样的字符串数组:
String [] sTokens = {"elem1", "elem2"};
以下内容无法按预期工作:
if (sTokens[0].indexOf("texttofind".toLowerCase())>=10) {
//do something
}
我的期望是让计算的表达式返回一个数字(在本例中为 10 或在最坏的情况下为 -1),然后根据返回的数字执行某些操作,例如10 表示我找到了我需要的东西。
我正在 Netbeans 中使用调试工具,当我计算括号中的表达式时,它返回 10(就像它应该做的那样)。
不幸的是,这可能是我的错误,表达式被评估为 NULL。
任何帮助将不胜感激 洛伦兹
最佳答案
您错误地使用了indexOf。如果这是您所拥有的:
String [] sTokens = {"elem1", "elem2"};
然后你像这样运行你的代码:
System.out.println(sTokens[0].indexOf("el".toLowerCase()));
它将打印 0,因为 sTokens[0] 中包含从索引 0 开始的“el”。
如果你运行这个:
System.out.println(sTokens[0].indexOf("em".toLowerCase()));
它将打印 2,因为“em”从索引 2 开始。
关于java - 查找子字符串并计算表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54480492/