如何使用 BufferedReader 检查 csv 中是否存在多个条件字符串?
How to check if multiple conditions strings exist in the csv using BufferedReader?
我正在使用 BufferedReader
检查文件中是否存在多个字符串,我正在使用以下脚本:
int n = 41; // The line number
String line;
BufferedReader br = new BufferedReader(new FileReader(context.tfilelistdir));
for (int i = 0; i < n; i++)
{
line = br.readLine();
if (line.contains("$$WORDS$$ ABC") && line.contains("$$WORDS$$ XYZ"))
{
do something
}
}
这里我需要检查字符串 $$WORDS$$ ABC
和 $$WORDS$$ XYZ
是否都存在于 csv 文件中的不同 rows/cols 中。 BufferedReader 的行不接受 &&
。它仅适用于 ||
(OR) 条件 BufferedReader 在不断读取记录时覆盖条目。
有什么方法可以检查 CSV 文件中是否存在这两个条件(存在字符串)?
如果子字符串在不同的行中,需要引入一些布尔标志来跟踪每个特定条件。
另外,最好使用try-with-resources
确保file/reader资源正常关闭,并在读取过程中检查是否未到达文件末尾(然后br.readLine()
returns null
).
int n = 41; // The line number
String line;
try (BufferedReader br = new BufferedReader(new FileReader(context.tfilelistdir))) {
boolean foundABC = false;
boolean foundXYZ = false;
int i = 0;
while ((line = br.readLine()) != null && i++ < n) { // read at most n lines
foundABC |= line.contains("$$WORDS$$ ABC"); // will be true as soon as ABC detected
foundXYZ |= line.contains("$$WORDS$$ XYZ"); // will be true as soon as XYZ detected
if (foundABC && foundXYZ) { // not necessarily in the same line
//do something
}
}
}
我正在使用 BufferedReader
检查文件中是否存在多个字符串,我正在使用以下脚本:
int n = 41; // The line number
String line;
BufferedReader br = new BufferedReader(new FileReader(context.tfilelistdir));
for (int i = 0; i < n; i++)
{
line = br.readLine();
if (line.contains("$$WORDS$$ ABC") && line.contains("$$WORDS$$ XYZ"))
{
do something
}
}
这里我需要检查字符串 $$WORDS$$ ABC
和 $$WORDS$$ XYZ
是否都存在于 csv 文件中的不同 rows/cols 中。 BufferedReader 的行不接受 &&
。它仅适用于 ||
(OR) 条件 BufferedReader 在不断读取记录时覆盖条目。
有什么方法可以检查 CSV 文件中是否存在这两个条件(存在字符串)?
如果子字符串在不同的行中,需要引入一些布尔标志来跟踪每个特定条件。
另外,最好使用try-with-resources
确保file/reader资源正常关闭,并在读取过程中检查是否未到达文件末尾(然后br.readLine()
returns null
).
int n = 41; // The line number
String line;
try (BufferedReader br = new BufferedReader(new FileReader(context.tfilelistdir))) {
boolean foundABC = false;
boolean foundXYZ = false;
int i = 0;
while ((line = br.readLine()) != null && i++ < n) { // read at most n lines
foundABC |= line.contains("$$WORDS$$ ABC"); // will be true as soon as ABC detected
foundXYZ |= line.contains("$$WORDS$$ XYZ"); // will be true as soon as XYZ detected
if (foundABC && foundXYZ) { // not necessarily in the same line
//do something
}
}
}