gpt4 book ai didi

Java文本输入: How to ignore lines starting with certain characters in them?

转载 作者:行者123 更新时间:2023-12-02 09:36:07 26 4
gpt4 key购买 nike

我基本上想忽略某些包含字符的行,比如是否有一行

// hello, i'm bill

我想在阅读时忽略该行,因为它包含字符“//”。我怎样才能做到这一点?我尝试了方法skip(),但它给了我错误。

public String[] OpenFile() throws IOException {

FileReader reader = new FileReader(path);
BufferedReader textReader = new BufferedReader(reader);

int numberOfLines = readLines();
String[] textData = new String[numberOfLines];
int i;

for (i=0; i<numberOfLines; i++) {
textData[i] = textReader.readLine();
}

// close the line-by-line reader and return the data
textReader.close();
return textData;
}

int readLines() throws IOException {
FileReader reader = new FileReader(path);
BufferedReader textReader = new BufferedReader(reader);
String line;
int numberOfLines = 0;

while ((line = textReader.readLine()) != null) {
// I tried this:
if (line.contains("//")) {
line.skip();
}
numberOfLines++;
}
reader.close();
return numberOfLines;
}

更新:这是我的主要方法:

try{
ReadFile files = new ReadFile(file.getPath());
String[] anyLines = files.OpenFile();
}

最佳答案

while ((line = textReader.readLine()) != null) {

// I tried this:
if (line.contains("//")) {
continue;
}

numberOfLines++;

}

请注意,继续可能看起来有点像 goto 并且容易受到批评

<小时/>

编辑这就是您想要的内容(注意这不需要 countLines 方法)

public String[] OpenFile() throws IOException {
FileReader reader = new FileReader(path);
BufferedReader textReader = new BufferedReader(reader);

List<String> textData = new LinkedList<String>();//linked list to avoid realloc
String line;
while ((line = textReader.readLine()) != null) {
if (!line.contains("//")) textData.add(line);
}

// close the line-by-line reader and return the data
textReader.close();
return textData.toArray(new String[textData.size()]);
}

关于Java文本输入: How to ignore lines starting with certain characters in them?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6091736/

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