gpt4 book ai didi

java - 尝试从列表中查找倒数第 n 个元素(使用文件输入)

转载 作者:行者123 更新时间:2023-12-02 06:14:36 27 4
gpt4 key购买 nike

输入看起来像

a b c d 4
e f g h 2

其中每一行都会像列表一样被读取,整数表示为列表中的索引

我首先尝试读取文件 line be line 并将其存储在列表中。这就是我所拥有的

public class FileReader {

public static void main(String[] args) {
String line = null;
List<String> list = new ArrayList<String>();

try {
FileInputStream fstream = new FileInputStream("test.txt");
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
// File file = new File("test.txt");
// Scanner scanner = new Scanner(file);
while ((line = br.readLine()) != null) {
list.add(line);
}

System.out.println(list);

} catch (Exception e) {
e.printStackTrace();
}

}
}

现在我想从列表中删除空格并将值存储在 char 数组中,然后我计划向后遍历该数组直到第 n 个元素,具体取决于 n 的输入。

String[] elements = line.trim().split("\\s");
char[] chars = new char[elements.length - 1];
int i= Integer.parseInt(elements[elements.length - 1]);
for (i = 0; i < elements.length - 1; i++)
char[i] = elements[i].charAt(i);

有人早些时候向我提供了这段代码,我尝试了它,它在 String[] 元素处抛出了一个空指针异常。

最佳答案

这是因为你正在运行直到这里的行为空

    while((line = br.readLine()) != null)
{
list.add(line);

}

然后您尝试对其调用 .trim()

您的意思是要处理 list 中的字符串吗?

如果是这样,请尝试循环遍历您的列表,您已经正确地拆分了它并获取了最后一个元素。您需要做的就是计算偏移量,在本例中,它将是 String[] 元素中的长度 - 1 - 最后一个元素,您可以将其打印出来。

    for (int i = 0; i < list.size(); i++)
{
String currentLine = list.get(i);
String[] elements = currentLine.trim().split("\\s");
int lastElement = Integer.parseInt(elements[elements.length - 1]);

String desiredValue = elements[elements.length - 1 - lastElement];
System.out.println("desiredValue = " + desiredValue);
}

关于java - 尝试从列表中查找倒数第 n 个元素(使用文件输入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21612168/

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