gpt4 book ai didi

java - 无法正确分割txt文件,ArrayIndexOutOfBoundsException

转载 作者:行者123 更新时间:2023-12-01 17:22:01 25 4
gpt4 key购买 nike

我有一个我自己制作的日志,我希望我的程序可以按月在日志中搜索。这是我的 file.txt 的格式:

[31 2013年2月8日 21:55:47] 姓名_姓氏 0A49G 21

第一个数字是一年中的第几周(我设法得到了它,我可以按周搜索,我虽然这个月是相同的,但看来我错了),接下来的 3 个数字是日/月/年。问题是我无法拆分数组(因为 netBeans 说“线程“AWT-EventQueue-0”中出现异常 java.lang.ArrayIndexOutOfBoundsException: 1”)。我标记了 netBeans 所说的问题所在。我想要的是获取月份的数字,以便我可以进行搜索。

这是代码:

    textoMostrado.setText("");
FileReader fr = null;
try {
File file = new File("Registro.txt");
fr = new FileReader(file);
if (file.exists()) {
String line;
BufferedReader in = new BufferedReader(fr);
try {
int mes = Calendar.getInstance().get(Calendar.MONTH);
mes++;
int año = Calendar.getInstance().get(Calendar.YEAR);
año %= 100;
while ((line = in.readLine()) != null) {
String[] lista = line.split(" ");
String [] aux = lista[1].split("/"); //the problem is here
int numMes = Integer.parseInt(aux[1]);
int numAño = Integer.parseInt(aux[2]);
if ((numMes==mes)&&(numAño==año)) {
textoMostrado.append(line+"\n");
}
}
} catch (IOException ex) {
Logger.getLogger(MostrarRegistros.class.getName()).log(Level.SEVERE, null, ex);
}
}
} catch (FileNotFoundException ex) {
Logger.getLogger(MostrarRegistros.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
fr.close();
} catch (IOException ex) {
Logger.getLogger(MostrarRegistros.class.getName()).log(Level.SEVERE, null, ex);
}
}

抱歉我的英语不是我的母语,我希望有人可以帮助我。

最佳答案

这对线:

String[] lista = line.split(" ");
String [] aux = lista[1].split("/"); //the problem is here

... 只要该行不包含空格就会失败,因为在这种情况下 lista 将只有一个元素。您可以防范这种情况:

if (lista.length > 1) {
String[] aux = lista[1].split("/");
...
} else {
// Whatever you want to do with a line which doesn't include a space.
}

我的猜测是,您的日志中包含的行不是,如示例中所示 - 您只需在 else 子句中添加一些日志记录即可轻松诊断这一点多于。顺便说一句,您可能会发现它是一个空字符串...

关于java - 无法正确分割txt文件,ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18026755/

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