gpt4 book ai didi

java - 尝试将文件数据与字符串进行比较

转载 作者:行者123 更新时间:2023-12-02 03:43:44 25 4
gpt4 key购买 nike

我试图返回一个字符串是否出现在文件的任何行中,如果有则打印出它出现的行。

目前,在控制台中,它打印我的 ifelse 语句的输出。我不知道我哪里出了问题。我想要 truefalse,而不是两个值。这是我在控制台中得到的结果:

0: -
String False
1: File String, ThisString
String False

这是我的方法:

public void checkString() {
int line = 0;
//fileString = false;
while (scanner.hasNext()) {
String str = scanner.nextLine();
System.out.println(line + ": " + str);
line++;
if (str.contains(string)) {
System.out.println("File String," + string);
fileString = true;
} else {
System.out.println("String False");
}
}
}

显然还有额外的代码,这是我所关注的部分。它遵循我读取的特定文件的路径。关于这个问题的更多细节:如果代码为真,我想执行一个操作,如果为假或在 else 语句中,我想执行一个完全不同的操作。

最佳答案

查找包含字符串的行的一种方法如下:

public String lineContaining(String someString) {
int lineNumber = 0;
while (scanner.hasNext()) {
String eachLine = scanner.nextLine();
System.out.println(lineNumber + ": " + eachLine);
lineNumber++;
if (eachLine.contains(someString)) {
System.out.println("Found string " + someString
+ " in line " + lineNumber + ": " + eachLine);
return eachLine;
}
}
return null;
}

此方法将遍历每一行(由您的扫描仪提供)并检查它是否包含someString。如果存在这样一行,它将返回它(从而退出 while 循环);如果没有,该方法将返回 null,这意味着没有任何行包含您要查找的内容。您可以从需要该行的任何位置调用此函数,对结果执行空检查 (== null) 以查看是否找到该行,然后从那里进行相应操作。如果您需要更多信息,例如找到字符串的行号,我建议创建一个简单的包装对象,其中包含一个字符串(找到子字符串的行)和一个整数(行号);那么您的方法可以返回该包装器而不是 String

请注意,我已将您的 line 变量重命名为 lineNumber (在我看来,line 听起来像是一个字符串,而不是一个int),以及 streachLine(Smalltalk 的习惯,强调变量的迭代性质)。

关于java - 尝试将文件数据与字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36538168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com