【问题标题】:searching for a word in a text file in java blue j [duplicate]在java blue j的文本文件中搜索单词[重复]
【发布时间】:2016-04-18 15:16:34
【问题描述】:

当我运行代码时,它会报错

java.lang.ArrayIndexOutOfBoundsException: 0
    at SearchFile.main(SearchFile.java:28)

MyNote.txt是保存在我电脑D目录下的文本文件。 而“ad”是该文本文件中的单词。

import java.io.*;

public class SearchFile {

public static void main(String args[]) {

args[0] = "ad";

if (args.length > 0) {
String searchword = args[0];

try {

int LineCount = 0;
String line = "";

BufferedReader bReader = new BufferedReader(new FileReader("D:/MyNote.txt"));

while ((line = bReader.readLine()) != null) {
LineCount++;

int posFound = line.indexOf(searchword);
if (posFound > - 1) {
System.out.println("Search word found at position " + posFound + " on line " + LineCount);
}
}
bReader.close();
}
catch (IOException e) {
System.out.println("Error: " + e.toString());
}
}
else {
System.out.println("Please provide a word to search the file for.");
}
}
}

我不知道错误是什么或我做错了什么。 我是新手,实际上请帮忙! 谢谢你

【问题讨论】:

  • 您正在为 args[0] 分配一个值,而没有检查是否有这样的索引要设置。换句话说,如果没有给 main 方法提供参数,那么 args[0] 将抛出一个ArrayIndexOutOfBoundsException,因为没有这样的数组索引。

标签: java search find text-files word


【解决方案1】:

使用另一个变量而不是args[0]

String str = "ad";
if (str.length() > 0) {
String searchword = str;

变量args[0]通过main方法作为类的输入。此外,在您的情况下它是空的,因为没有给出任何参数。

【讨论】:

  • 非常感谢你
  • 实际上您在上面看到的代码不是我编写的,这就是我无法正确编辑代码的原因
  • 很高兴它有帮助 :) 是的,使用别人的代码有时会很痛苦。
  • 你帮了大忙了兄弟..嘿,我怎么加你为朋友!!
  • 兄弟,我手头还有另一项任务..
【解决方案2】:

问题是您的args[] 在您的应用程序启动时是空的并且没有大小。在这种情况下,不存在索引 0 并且您使用 args[0] = "ad"; 的行失败。

尝试使用参数启动您的应用程序,而不是尝试在代码中手动设置它。如果您没有看到任何其他解决方案,请自行创建一个数组并将其设置为填充您要使用的信息的变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多