equals()方法不检测文件中的单词

时间:2017-07-25 02:19:32

标签: java file io java.util.scanner equals

我正在编写一个程序来读取文件并检查每一行是否有特定的单词。我在下面有这个代码,但是代码没有执行' if语句'而且我不确定为什么。该文件名为" scores.txt"包括:

grepl("^[CFLMST]{2,}", PITCH_SEQ_TX)
#[1]  TRUE  TRUE FALSE FALSE FALSE
grepl("^B{3,}", PITCH_SEQ_TX)
#[1] FALSE FALSE FALSE  TRUE FALSE

这是我到目前为止所拥有的:

Andy 60  
Bob 87  
Alice 59  

我试图让它找到用户bob存在的行。请建议。

由于

2 个答案:

答案 0 :(得分:3)

在第二次循环时,line的值为Bob 87,就在检查line.equalsIgnoreCase("bob")之前,即使我们忽略了这种情况,“bob”也不相等“鲍勃87”

您需要做的事情是line.toLowerCase().startsWith("bob")

答案 1 :(得分:1)

使用Scanner 构建的String读取 String。你需要改变

Scanner scanner = new Scanner("scores.txt");

Scanner scanner = new Scanner(new File("scores.txt"));

此外,line不是"Bob" - 所以您可能想要更改

if(line.equalsIgnoreCase("bob")) { 

类似

if(line.toLowerCase().startsWith("bob")) { 

您可以使用Patternmatches()(测试整场比赛)。像,

Pattern p = Pattern.compile("bob", Pattern.CASE_INSENSITIVE);
if (p.matcher(line).matches()) {
    // ...