【发布时间】:2016-01-06 22:48:42
【问题描述】:
我正在尝试编写类似文本文件解释器的东西。我决定从基础开始,写一些剖析字符串的东西:
public static void dataImport() throws IOException {
BufferedReader dataReader = new BufferedReader(new FileReader("C:\\Users\\(my name)\\Desktop\\javaWrite.txt"));
ArrayList<String> orderLine = new ArrayList<>();
String line = null;
String endResult = "";
String currentChar = null;
while((line = dataReader.readLine()) != null) {
for(int character = 0; character < line.length(); character++) {
currentChar = line.substring(character, character+1);
if(currentChar.equals("|")) {
for(String singleChar : orderLine) {
endResult += singleChar;
}
fileThings.add(endResult);
endResult = "";
orderLine.clear();
}else{
orderLine.add(currentChar);
}
}
}
dataReader.close();
}
它正在读取的文本文件有“Hello|world!”写。
代码输出“Hello”,仅此而已。当我让它在 else 中输出 currentChar 变量时,它只是继续读取整个句子。所以所有的证据都表明 ArrayList orderLine 是问题所在。
【问题讨论】:
-
实际上,我很惊讶输出不是
world!,因为一旦遇到|,ArrayList就会被清除。 -
@MattCremeens 但是它被添加到了
fileThings(不管是什么),并且那里缺少world!。 -
@Andreas,啊,我现在明白了。我在想 OP 正在打印
orderLine的内容。 -
你试过javascript吗?你可以在 jQuery 中轻松做到这一点
-
@Andreas 哎呀,复制时遗漏了一些东西。 fileThings 只是另一个字符串变量的 ArrayList
标签: java arraylist filereader