1

好的,我的 getBreadInfo 代码是

public static String[] getBreadInfo()  
{   
    ArrayList<String> breadsList = new ArrayList<>();

        try (BufferedReader in =
                new BufferedReader(
                new FileReader("bread.txt")))
        {
            String line = in.readLine();
            while (line != null)
            {
                String[] elems = line.split("~");
                breadsList.add(elems[0]+ " $" + elems[1]);
                line = in.readLine();
            }

        }
        catch(IOException e)
        {
            System.out.println(e);
            return null;
        }
    String[] breadInfo = breadsList.toArray(new String[]{});
    return breadInfo;
}

在我的主应用程序中显示这个数组是

public static void displayBreadMenu()  
{  
    System.out.println("=== Select Sandwich Bread ===");

   String[] breadInfo = SandwichDB.getBreadInfo();
   for (String breads : breadInfo)
   {
       System.out.println(breads);
   }
}

它在控制台上打印为

=== 选择三明治面包 ===
白面包 1.50
小麦面包 1.80
法式面包 2.00
有机面包 2.30

我将如何添加一个整数值以与每个数组关联?比如
1 白面包
2 小麦面包
3 法式面包
4 有机面包

我被告知我的 getBread() 类似于 getBreadInfo,除了它只包含面包名称,并返回另一个数组 bread[] 供 SandwichApp 确定用户选择了哪个面包,因为用户输入了与面包相关的数字(索引+1),而不是面包名称。

我是在我的 getbread() 中写入整数值还是 getBread 只是为了检查用户选择的面包?

4

3 回答 3

1

我想这就是你想要的。只需在显示行时使用变量来保持计数...

int counter = 0;
for (String breads : breadInfo)
{
    System.out.println(++counter + "\t" + breads);
}
于 2012-12-03T22:33:37.417 回答
1

有一个计数器并在添加到列表时附加它怎么样。

int count=1;
 while (line != null)
            {
                String[] elems = line.split("~");
                breadsList.add(count+" " +elems[0]+ " $" + elems[1]);
                line = in.readLine();
                 count++;
            }
于 2012-12-03T22:34:13.773 回答
0

White bread 1.50当您添加elems[0]+ " $" + elems[1]到数组中时,我真的很惊讶它是如何打印的(注意$中间的符号)。

不打印1 White bread,你想$" + elems[1]在前面打印索引之前截断字符串的末尾吗?

如果是:请尝试以下操作:

      int ind = 1;
      for (String breads : breadInfo){
         System.out.println(ind++ + "\t" + breads.split("\\$")[0]);
      }

请注意:将从存储在数组中的字符串返回breads.split("$")[0]White breadWhite bread $1.50

于 2012-12-03T22:41:52.760 回答