我正在编写一个程序来读取文件并检查每一行是否有特定的单词。我在下面有这个代码,但是代码没有执行' 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存在的行。请建议。
由于
答案 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")) {
或您可以使用Pattern
和matches()
(测试整场比赛)。像,
Pattern p = Pattern.compile("bob", Pattern.CASE_INSENSITIVE);
if (p.matcher(line).matches()) {
// ...