【发布时间】:2018-02-03 20:45:07
【问题描述】:
我正在尝试使用 StringTokenizer 从文本文件中读取数据。我正在编写的程序是阅读各种汉堡订单。我试图读取的数据(汉堡订单的配料)存储为大小为 7 的字符串数组。似乎一切正常,除了当我从文本文件中读取多个汉堡订单时,它看起来就像最后一个浇头数组替换了所有其他数组,这意味着我认为我的索引覆盖了前一个索引。我试图将数组复制到一个临时数组,但似乎我做得不对。任何帮助将不胜感激。
while (infile.hasNextLine())
{
line = infile.nextLine();
StringTokenizer tokens = new StringTokenizer(value,", ");
bun = tokens.nextToken();
size = tokens.nextToken();
line = infile.nextLine();
tokens = new StringTokenizer(line,",");
index = 0;
while(tokens.hasMoreTokens())
{
burger_toppings[index] = tokens.nextToken();
temporaryBurgerToppings= burger_toppings.clone();
index++;
}
who = new Burger(size,bun,toppings);
burger.add(who);
}
【问题讨论】:
-
来自the documentation for
StringTokenizer"StringTokenizer是一个遗留类,出于兼容性原因保留,但不鼓励在新代码中使用它。" 不要使用StringTokenizer. -
我同意你的观点,但我必须使用 StringTokenizer,尽管我不想这样做
-
能否贴出更详细的代码。看起来您发布的部分代码在循环中执行(可能是多行)并将索引每次设置为 0。
-
@AmitBera 我发布了从文件中读取的完整代码。似乎索引每次都设置为 0,但我怎样才能阻止它这样做,因为假设代码在技术上每次运行时都会创建两个单独的数组。例如,Burger 1 有自己的 bun、size 和 toppings 数组。 Burger 2 有自己的面包、大小和配料,任何其他额外的汉堡都会这样做。
-
@AmitBera 我之前尝试过,它给了我一个错误,说 ArrayIndexOutofBounds
标签: java arrays text-files stringtokenizer