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に似ていると言われていますが、パンの名前のみが含まれている点が異なります。SandwichAppの別の配列bread []を返すと、ユーザーがパンに関連付けられた番号を入力したため、ユーザーが選択したパンを特定できます(インデックス+1)、パンの名前ではなく。

getbread()に整数値を書き込むのですか、それともユーザーが選択したパンを確認するためだけにgetBreadを使用するのですか?

4

3 に答える 3

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 に答える
1

これがあなたの望むものだと思います。行を表示するときにカウントを維持するには、変数を使用するだけです...

int counter = 0;
for (String breads : breadInfo)
{
    System.out.println(++counter + "\t" + breads);
}
于 2012-12-03T22:33:37.417 に答える
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 に答える