我们正在尝试读取文件,然后按管道拆分。代码正在读取文件,但无法识别管道。例如,文件的行表示Cola | 0,在拆分为数组后,我们遇到了array [1]的异常。如果正确分割行,那肯定应该存在。
当我们有一个if(line.contains“ \ |”)时,即使每行中都有管道,它也每次都会返回true。我们尝试使用whileInt代替nextLine,但是它立即返回false并结束了while(这本不应该这样做,因为肯定有数字)。
我们还尝试使用indexOf(“ \ |”)+ 1末尾的子字符串,但仍然无法正常工作。为什么它没接住管道?
try (Scanner fileScanner = new Scanner(file)) {
while (fileScanner.hasNextLine()) {
String line = fileScanner.nextLine();
if (!line.contains("$")) {
for (String item : productsSold.keySet()) {
String[] productDetails = line.split("\\|");
productsSold.put(item, Integer.parseInt(productDetails[1]));
Cola | 0应该使数组的第二行为0。相反,我们遇到了数组超出范围的异常。
答案 0 :(得分:-1)
我相信,foreach循环的位置有问题。它不断尝试分割同一行,最终导致数组的索引不为1。