gpt4 book ai didi

java - 在字符串上使用 line.split 时获取 ArrayIndexOutOfBound

转载 作者:行者123 更新时间:2023-12-02 00:58:57 26 4
gpt4 key购买 nike

获取indexOutOfBound。文件保存成功后。我打开该文件来执行以下任务:查找每个项目的总 cost、totalCount 和总和。不知道为什么我会越界。错误指出

totalCost =+ Double.parseDouble(index[1].trim());

源代码:

 Scanner data = new Scanner(new File("registryCopy.txt"));

while(data.hasNext()){
String line = data.nextLine();
System.out.println(line);

String[] index = line.split("\\t");
totalCost += Double.parseDouble(index[1].trim());
totalCount += Integer.parseInt(index[2].trim());

sum = totalCost/totalCount;

}

错误

Error: "main" java.lang.ArrayIndexOutOfBoundsException: 1 

即:totalCost += Double.parseDouble(index[1].trim());

由于某些原因,它不会分割线。文本文件如下:

item1 15.00 3
item2 15 2
item3 14 3

文件之前已创建并提示用户输入该数据。来源:

while(userInput.charAt(0)!='n'){
/**
* Need only one PrintWriter out0 i.e, then I either use the userbased name OR fixed name creation i.e registryCopy.txt(true will
* not overwrite the file but go to the next).
*/
PrintWriter out0 = new PrintWriter(new BufferedWriter(new FileWriter("registryCopy.txt", true)));

System.out.print("Enter item name: ");
itemName = kybd.next();//user String
out0.print(itemName + " ");

System.out.print("Enter item price: $");
price = kybd.next();
out0.print(price + " ");

System.out.print("Enter item quantity: ");
quantity = kybd.next();
out0.println(quantity);


System.out.print("Do you have another item to scan? Yes(y) or No(n): ");
userInput= kybd.next();
out0.flush();
}//end of whileLoop

更新1:你们太棒了,成功了。当你在芝加哥时请给我啤酒。谢谢

输出源代码:

sum = totalCost*totalCount;
System.out.println("");
System.out.println(totalCost);
System.out.println(totalCount);
System.out.println(sum);

标准操作流程:

项目1 15.00 3

项目2 15 2

项目3 14 3

项目5 10.00 3

第 5 项 12

bla 11 5

面包1 15

项目14 5 3

76.0

46

3496.0

最佳答案

您对 split 的调用会在选项卡上拆分;您的输入似乎有其他类型的空格分隔标记。

要分割任何类型的空白,请使用"\\s":

String[] index = line.split("\\s");

\sregular expression代表以下任意一个:' '、'\t'、'\n'、'\x0B'、'\f'、'\r'

关于java - 在字符串上使用 line.split 时获取 ArrayIndexOutOfBound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20389138/

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