gpt4 book ai didi

java - 手动数组排序返回 nullpointerexception

转载 作者:行者123 更新时间:2023-11-29 03:12:36 25 4
gpt4 key购买 nike

有人知道为什么这段代码返回空指针异常吗?它应该按字母顺序对数组进行排序,但它没有执行该功能。

public void borrowerSort() throws IOException {
String inputFile = "Borrower Details.txt";
String outputFile = "Borrower Details2.txt";

FileReader txtArranger = new FileReader(inputFile);
BufferedReader txtReader = new BufferedReader(txtArranger);



for(int i = 0; i <= inputFile.length(); i ++)
{
borrowerDetails[i] = txtReader.readLine();
//
// System.out.println(borrowerDetails[i]);
// System.out.println();
}

//System.out.println(borrowerDetails[0] + borrowerDetails[2]);
for(int j = 0; j < borrowerDetails.length - 1; j ++)
{
for(int k = j + 1; k < borrowerDetails.length; k ++)
{
if(borrowerDetails[j].compareTo(borrowerDetails[k]) > 0){
String store = borrowerDetails[j];
borrowerDetails[j] = borrowerDetails[k];
borrowerDetails[k] = store;

}

}
}

最佳答案

    String inputFile = "Borrower Details.txt";

for(int i = 0; i <= inputFile.length(); i ++)
{
borrowerDetails[i] = txtReader.readLine();

不可能从文件的名称的长度推导出文件的行大小。

使用 List<String>读取行,复制到数组并对其进行排序。

List<String> lines = new ArrayList<>();
String line;
while( (line = txtReader.readLine()) != null ){
lines.add( line );
}

NPE的原因是String[] borrowerDetails分配不正确。如果这个数组比文件中的行数 (!) 长,一些数组元素保持为空,这会在 borrowerDetails[j].compareTo(...) 时导致 NPE。被称为

关于java - 手动数组排序返回 nullpointerexception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28502909/

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