0

さて、これが私が書かなければならないことの説明です:

  • getBreadInfo--bread.txtを配列リスト(パンの名前、$、価格を含む)に読み込み、配列breadInfo []に割り当ててから、この配列をSandwichAppに返してパンメニューを表示します。
  • getBread-getBreadInfoに似ていますが、パンの名前のみが含まれ、SandwichAppの別の配列bread []を返し、ユーザーがパンではなくパン(index + 1)に関連付けられた番号を入力したためにユーザーが選択したパンを特定します。名前。
  • getMapBreadPrice-上記の2つと似ていますが、SandwichAppのパンの名前(キー)と価格(値)のペア値を含むハッシュマップを返し、選択したパンのユーザーの価格を把握します。

これは私が書いたものです。これが正しいかどうか疑問に思っていますか?

public class SandwichDB {  
private ArrayList<String> breadsList = null;

public String[] getBreadInfo()
{ 
    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]);  
            }

        }
        catch(IOException e)
        {
            System.out.println(e);
            return null;
        }
    String[] breadInfo = breadsList.toArray(new String[]{});
    return breadInfo;
}
public String[] getBread()
{
    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]);  
            }

        }
        catch(IOException e)
        {
            System.out.println(e);
            return null;
        }
        String[] bread = breadsList.toArray(new String[]{});
        return bread;
}
public HashMap<String, String> getMapBreadPrice()
        {
            HashMap<String, String> mapBreadPrice = new HashMap<>();
            String line, elems[];
            try
            {
                FileReader fr = new FileReader("bread.txt");
                BufferedReader br = new BufferedReader(fr);

                while ((line=br.readLine()) != null)
                {
                    elems = line.split("~");
                    mapBreadPrice.put(elems[0], elems[1]);
                }
            }
            catch(IOException e)
            {
                System.out.println(e);
                return null;
            }
            return mapBreadPrice;
        }
        }
4

2 に答える 2

0

最初のものreadLineは の前にあるwhileため、繰り返されません。したがってしばらくは終わらない。

for (;;) {
    String line = in.readLine();
    if (line == null) {
        break;
    }
于 2012-12-03T10:27:37.430 に答える
0

3 つの構造を構築するために、同じファイルを 3 回読み取っているようです。ファイルの 1 回の読み取りでデータ構造を構築する必要があります。

于 2012-12-03T10:28:06.207 に答える