Javaプログラムで商品一覧表示

このQ&Aのポイント
  • Javaプログラムを使用して、指定した商品番号に対応する商品の情報を表示する方法について教えてください。
  • 指定した商品番号に対応する商品の情報を縦書きで表示するためのJavaプログラムを作成したいです。どのようにすればよいでしょうか。
  • 商品情報が記載されたテキストファイルを読み込み、指定した商品番号に対応する商品の情報を表示するJavaプログラムを作成したいです。アドバイスをいただけますか?
回答を見る
  • ベストアンサー

こういうプログラムをどう書けばいいのでしょう

こういうプログラムがあります。 <%@ page language="java" contentType="text/html; charset=Shift_JIS" import="java.io.*,java.util.*,java.text.*"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>商品一覧</title> </head> <body> <h1 style="font-size:14pt;background:#ccccff">商品一覧</h1> <table border="0"> <tr style="background:#ccccdd"> <th>商品ID</th><th>商品名</th><th>現在価格</th><th>入札</th><th>残日数</th> </tr> <% String tmpStr; StringTokenizer tkn; FileReader fr = new FileReader(application.getRealPath("data.txt")); BufferedReader br = new BufferedReader(fr); DecimalFormat df; df = new DecimalFormat("###,###"); Calendar calToday = Calendar.getInstance(); Calendar calTmp = Calendar.getInstance(); //ストリームが読み込み可能かどうかを返します while (br.ready()) { tmpStr = br.readLine(); out.println("<tr style='background:#ffffcc'>"); tkn = new StringTokenizer(tmpStr, "\t"); byte i; i=0; String strTmp; while (tkn.hasMoreTokens()) { strTmp = tkn.nextToken(); if (i==1) { out.println("<td>" + strTmp + "</td>"); }else if (i!=4) { out.println("<td align='right'>" + df.format(Long.parseLong(strTmp)) + "</td>"); }else { //残日数の計算 calTmp.set(Calendar.YEAR, Integer.parseInt(strTmp.substring(0,4))); calTmp.set(Calendar.MONTH, Integer.parseInt(strTmp.substring(5,7))-1); calTmp.set(Calendar.DATE, Integer.parseInt(strTmp.substring(8,10))); Date dteToday = calToday.getTime(); Date dteTmp = calTmp.getTime(); long diff = (dteTmp.getTime() - dteToday.getTime()) / (24*60*60*1000); out.println("<td align='right'>" + Long.toString(diff) + "</td>"); } i++; } out.println("</tr>"); } br.close(); fr.close(); %> </table> </body> </html> このプログラムが読み込んでいるテキストファイルです。 100 タンロップ1箱 15000 1 2009/03/15 200 WELSON36個 3700 2 2009/03/20 300 フリジストンXT81個 12500 2 2009/03/21 400 120球プレッシャーボール 16000 0 2009/03/23 500 ヨネッグススポンジボール 1010 0 2009/03/25  問題のプログラムは最初の100、200、300、400、500という数字を入力すると、その商品の内容が縦書きで表示されるというモノです。 tmpStr = br.readLine(); で1行分取り出して、 tkn = new StringTokenizer(tmpStr, "\t"); でタブで区切って表示させるプログラムなのでどうにかなるようにも思えるのですが……。 1番難しいと思うのは検索番号を入力した際にその商品とどう結びつけるのか、ですね。 質問の意味が分かる方、アドバイス宜しくお願い致します。

  • Java
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.2

> 200で読み込みを終了するのは > 100のデータも読み込んでますよね 当然読みこむわよ。 でも破棄すればいいじゃない。 具体的に言うと変数の上書きね。 > 接頭語 100とか200とか入力した数字でしょ? > 他に比較する方法 splitやStringTokenizerで配列にしてequalsするなり indexOfするなり数値に変換して==するなり何でもできると思うけど。 人間ならどういう比較をするか を考えるとわかりやすいわよ。 あとはそれを実現するAPIがあるかないか それだけのこと。 > 縦書き \tで分解した後 ループでまわして printlnするだけよ。 ちなみに一つのテクニックとして \tを\nに置換した方が楽だと思わない? もっとも課題に沿っている回答かどうかは分からないけど。

persona
質問者

お礼

姉御、再度のレスを頂き、心から感謝します。 実は、 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>商品検索</title> </head> <body> <h1 style="background:#ccccff" >商品検索</h1> <form method="POST" action="Sample7.jsp"> 検索する商品ID: <input type="text" name="kensaku" size="15"/> <input type="submit" value="検索"/> </form> </body> </html> 予想されていたかもしれませんが、上記のHTMLファイルから番号を入力して検索します。 そうすると while(startWith==request.getParameter("kensaku")) { こんな感じになるのでしょうか。 どうなんだろう……他にもいろいろな方法がありましたよね。 やっぱり姉御は凄いですね。自分は足元にも及びません。 この後、 StringTokenizer(tmpStr, "\t"); でデータを取り出してout.printlnか<br>で縦に並べればいいんですかね。 でも、上のプログラムのどこを削除してどこに加えればいいのか、がさっぱりです。 1番最初からあった悩みの中枢部ですね。

その他の回答 (1)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

たとえば200って入力されていたら ファイルを1行ずつ読みこむ時に 200のデータが来た段階で読み込みを終了すればいいんじゃない? 比較する方法はたくさんあるけど 今回の場合はstartWithが楽だとお思うわよ。

persona
質問者

お礼

姉御、お久しぶりです。 アドバイスありがとうございます。 200で読み込みを終了するのは 100のデータも読み込んでますよね。 そうすると、2つのデータが表示されませんかね。 startWithを使用した場合、接頭語がどの部分に当たるのですか。 他に比較する方法があれば、是非とも教えて頂きたいのですが。 どうも質問ばかりで、すいませんです。 後、縦書きではなくて、縦一列と言ったほうがいいみたいですね。

関連するQ&A

  • ページ処理

    JSPの、通信教育を受けていますが、タブ区切りの商品テキストを読み込み、5点づつ表示させる。 下記のJSPに、 [ ○件中の○-○件の表示 ] [ 前へ / 1 2 3 4 5 / 次へ ] というページ処理をさせたいのですが、うまくいきません。通信教育は、受講料が安いせいか、質問しても「ループを使い読み飛ばせ」ぐらいの回答しか得られず困っています。どなた様かご教授願えないでしょうか。 <th>商品</th><th>商品名</th><th>現在価格</th><th>入札</th><th>締切日</th></tr> String tmpStr; StringTokenizer tkn; FileReader fr = new FileReader(application.getRealPath("data.txt")); BufferedReader br = new BufferedReader(fr); DecimalFormat df; df = new DecimalFormat("###,###"); while(br.ready()){ tmpStr = br.readLine(); out.println("<tr style='background:#ffffcc'>"); tkn = new StringTokenizer(tmpStr,"\t"); byte i; i=0; String strTmp; while(tkn.hasMoreTokens()){ strTmp = tkn.nextToken(); switch(i){ case 0: case 4: out.println("<td algin='right'>" + strTmp +"</td>"); break; case 1: out.println("<td>" + strTmp + "</td>"); break; default: out.println("<td align='right'>" +df.format(Long.parseLong(strTmp)) +"</td>"); } i++; } out.println("</tr>"); } br.close(); %> </table> </body> </html> お願いします。

  • JSPで聞きたいことがあります。

    JSPを学んで一ヶ月になります。以下の内容で質問があります。 <%@ page contentType="text/html;charset=Shift_JIS"import="java.io.*,java.util.*" %> <html> <head> <title>住所録</title> </head> <body> <h1 style="font-size:14pt;background:#cccccc">住所録</h1> <table border="0"> <tr style="background:#00ccff"> <th>No.</th><th>名前</th><th>性別</th><th>電話番号</th><th>住所</th> </tr> <% String tmpStr; StringTokenizer tkn; FileReader fr=new FileReader( application.getRealPath("myData/data.txt")); BufferedReader br=new BufferedReader(fr); while(br.ready()){ tmpStr=br.readLine(); out.println("<tr style='background:#ffffcc'>"); tkn=new StringTokenizer(tmpStr,"\t"); while(tkn.hasMoreTokens()){ out.println("<td>" + tkn.nextToken() + "</td>"); } out.println("</tr>"); } br.close(); %> </table> </body> </html> というコードがあるのですが、上記のコード中にあるwhile文をdo分に変えて、whileと同じように表示するのは可能でしょうか?ちなみに私は、 do{ tmpStr=br.readLine(); out.println("<tr style='background:#ffffcc'>"); }while(br.ready()); tkn=new StringTokenizer(tmpStr,"\t"); do{ out.println("<td>" + tkn.nextToken() + "</td>"); out.println("</tr>"); br.close(); }while(tkn.hasMoreTokens()); と記述したのですが、実行してみると、一部しか表示されず、しかも全ての情報が <th>NO.</th> に入ってしまうのです。そこで質問ですが、whileからdo文に変えて同じように表示するのは可能なのでしょうか?わかる方がいれば、お願いします。

    • ベストアンサー
    • Java
  • HTMLの質問なのかJAVAサーブレットの質問なのか微妙なのですがテー

    HTMLの質問なのかJAVAサーブレットの質問なのか微妙なのですがテーブルを一行に二つ表示したいのですが表示はできるんですが表示位置を中央にすることができなくて困ってます どうすれば中央にすることができますか? while(rs2.next()){ String name = rs2.getString("st.staff_name"); String kana = rs2.getString("st.staff_kana"); String birthday = rs2.getString("st.birthday"); String sex = rs2.getString("sm.sex"); String blood = rs2.getString("bm.blood_type"); String hight = rs2.getString("st.hight"); String weight = rs2.getString("st.weight"); String reration = rs2.getString("st.reration"); String mobile = rs2.getString("st.mobile_tel"); String tel = rs2.getString("st.tel"); out.println("<br></br><TABLE border=0 align=\"center\"><table border=1 align=\"left\"><tr><th width=150>氏名</th>"); out.println("<td width=200>"+name+"</td></tr><tr>"); out.println("<th>ヨミガナ</th>"); out.println("<td>"+kana+"</td></tr><tr>"); out.println("<th>生年月日</th>"); out.println("<td>"+birthday.replace("-", "/")+"</td></tr><tr>"); out.println("<th>性別</th>"); out.println("<td>"+sex+"</td></tr><tr>"); out.println("<tr><th>身長</th>"); out.println("<td>"+hight+"</td></tr>"); out.println("<tr><th>体重</th>"); out.println("<td>"+weight+"</td></tr>"); out.println("<tr><th>血液型</th>"); out.println("<td>"+blood+"</td></tr>"); out.println("<tr><th>携帯電話番号</th>"); String mtel=""; if(mobile!=null&&mobile.length()>0){ for (int i = 0; i < mobile.length(); i++) { char ch = mobile.charAt(i); if(i==3){ mtel+="-"; } if(i==7){ mtel+="-"; } mtel+=ch; if(mobile.length()==0){ mtel="-"; } } }else{ mtel="不所持"; } out.println("<td>"+mtel+"</td></tr>"); out.println("<tr><th>自宅電話番号</th>"); String ttel=""; for (int i = 0; i < tel.length(); i++) { char ch = tel.charAt(i); if(i==4){ ttel+="-"; } if(i==6){ ttel+="-"; } ttel+=ch; } out.println("<td>"+ttel+"</td></tr>"); out.println("<tr><th>続柄</th>"); out.println("<td>"+reration+"</td>"); out.println("</tr></table>");

  • プログラムの組み合わせ方

    java初心者です。 2つのプログラムを組み合わせて1つのプログラムにしたいんですが、イマイチ分かりません。 このプログラムと、 import java.io.*; class Hello2 {  public static void main(String[] args) throws IOException {   System.out.println("名前を入力してください");   BufferedReader br = new BufferedReader(new InputStreamReader(System.in));   String str = br.readLine();   System.out.println(str + "さん、こんにちは!");  } } このプログラムを、 import java.io.*; class Sanbai{  public static void main(String[] args) throws IOException {   System.out.println("好きな数を入力してください");   BufferedReader br = new BufferedReader(new InputStreamReader(System.in));   String str = br.readLine();   int x;   x = Integer.parseInt(str);   System.out.println("あなたの入力した数:" + x);   System.out.println("その3倍の数:" + (x*3));  } } 組み合わせて1つのプログラムにするにはどうしたらいいですか?(>_<)

    • ベストアンサー
    • Java
  • このようなソースを書いたのですが下に表示した二つのテーブルがどうしても

    このようなソースを書いたのですが下に表示した二つのテーブルがどうしても左よりに表示されてしまいます。 一行に2つのテーブルを横に並べつつその2つのテーブルを中央に表示できないでしょうか? よろしくお願いいたします <HTML><Div Align=center><HEAD><TITLE>検索結果詳細画面</TITLE></HEAD><BODY> <BR><BR><BR> <B>検索詳細画面</B><BR> <form action='/humans/servlet/Seach' method='get'> <table bor 社員番号</th> <td width=200> sno</td></tr><tr> <th>氏名</th> <td> name</td></tr><tr> <th>ヨミガナ</th> <td> kana</td></tr><tr> <th>住所</th> <td> address</td></tr><tr> <th>生年月日</th> <td> birthday</td></tr> <tr><th>性別</th> <td> sex</td></tr> <tr><th>身長</th> <td> hight</td></tr> <tr><th>体重</th> <td> weight</td></tr> <tr><th>血液型</th> <td> blood</td></tr> <tr><th>携帯電話番号</th> <td> mtel</td></tr> <tr><th>自宅電話番号</th> <td> ttel</td></tr></table><hr /> <br>家族(扶養家族)のデータ</br> <br></br><table border=1 align=left><tr><th width=150>氏名</th> <td width=200> name</td></tr><tr> <th>ヨミガナ</th> <td> kana</td></tr><tr> <th>生年月日</th> <td> birthday</td></tr><tr> <th>性別</th> <td> sex</td></tr><tr> <tr><th>身長</th> <td> hight</td></tr> <tr><th>体重</th> <td> weight</td></tr> <tr><th>血液型</th> <td> blood</td></tr> <tr><th>携帯電話番号</th> <td> mtel</td></tr> <tr><th>自宅電話番号</th> <td> ttel</td></tr> <tr><th>続柄</th> <td> reration</td> </tr></table> <table border=1 align=left><tr><th width=150>氏名</th> <td width=200> name2</td></tr><tr> <th>ヨミガナ</th> <td> kana2</td></tr><tr> <th>生年月日</th> <td> birthday2</td></tr><tr> <th>性別</th> <td> sex2</td></tr><tr> <tr><th>身長</th> <td> hight2</td></tr> <tr><th>体重</th> <td> weight2</td></tr> <tr><th>血液型</th> <td> blood2</td></tr> <tr><th>携帯電話番号</th> <td> mtel2</td></tr> <tr><th>自宅電話番号</th> <td> ttel2</td></tr> <tr><th>続柄</th> <td> reration2</td> </tr></table><br></br><br></br><br></br><br></br><br></br><br></br><br></br>

  • Javaと言うより、for文の長さの問題なのですが……

    <%@ page language="java" contentType="text/html; charset=Shift_JIS" import="java.util.*"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>カレンダー</title> </head> <body> <% //カレンダーオブジェクトを生成する Calendar myCal = Calendar.getInstance(); //年月日を取得する int year = myCal.get(Calendar.YEAR); int month = myCal.get(Calendar.MONTH) + 1; if (request.getMethod().equals("POST")) { year = Integer.parseInt(request.getParameter("yyyy")); month = Integer.parseInt(request.getParameter("mm")); } //年月選択リストを表示する out.println("<form method='POST' action='Calendar2.jsp'>"); out.println("<table><tr><td>"); //年 out.println("<select name='yyyy'>"); for (int i = 2000; i <= 2020; i++) { out.println("<option"); if (i == year) { out.println(" selected "); } out.println(">" + i); } out.println("</select>年"); //月 out.println("<select name='mm'>"); for (int i = 1; i <= 12; i++) { out.println("<option"); if (i == month) { out.println(" selected "); } out.println(">" + i); } out.println("</select>月"); out.println("</td>"); out.println("<td><input type='submit' value='更新'></td>"); out.println("</tr></table></form>"); //カレンダーを表示する out.println("<table border='1'>"); out.println("<tr>"); out.println("<td>日</td>"); out.println("<td>月</td>"); out.println("<td>火</td>"); out.println("<td>水</td>"); out.println("<td>木</td>"); out.println("<td>金</td>"); out.println("<td>土</td>"); out.println("</tr>"); //1日の曜日を取得する myCal.set(year, month - 1, 1); int dw1 = myCal.get(Calendar.DAY_OF_WEEK); //末日を取得する int lastd = myCal.getActualMaximum(Calendar.DAY_OF_MONTH); //表示する日付を初期化する int day = 0; //1日から末日まで日付を表示する 添付したcalendar.jspなのですが、ずばりココ↓の部分なのですが、 for (int i=0; i<=5; i++) { ここで最大は5以下になっているのですが、そうすると1列多くならないでしょうか。 これだと行数が6つになりますよね。 曜日のセルはその前に作っているので、曜日だけが入るのですから5行でいいと思うのですが、自分の考えは間違っているのでしょうか。 宜しくお願い致します。 for (int i = 0; i <= 5; i++) { if (day >= lastd) {break;} out.println("<tr>"); for (int j = 0; j <= 6; j++) { day = i * 7 + j - dw1 + 2; if (day > lastd || day < 1) { out.println("<td> </td>"); } else { out.println("<td>" + day + "</td>"); } } out.println("</tr>"); } out.println("</table>"); %> </body> </html>

    • ベストアンサー
    • Java
  • Javaと言うより、for文の長さの問題なのですが……

    <%@ page language=\"java\" contentType=\"text/html; charset=Shift_JIS\" import=\"java.util.*\"%> <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\"> <title>カレンダー</title> </head> <body> <% //カレンダーオブジェクトを生成する Calendar myCal = Calendar.getInstance(); //年月日を取得する int year = myCal.get(Calendar.YEAR); int month = myCal.get(Calendar.MONTH) + 1; if (request.getMethod().equals(\"POST\")) { year = Integer.parseInt(request.getParameter(\"yyyy\")); month = Integer.parseInt(request.getParameter(\"mm\")); } //年月選択リストを表示する out.println(\"<form method=\'POST\' action=\'Calendar2.jsp\'>\"); out.println(\"<table><tr><td>\"); //年 out.println(\"<select name=\'yyyy\'>\"); for (int i = 2000; i <= 2020; i++) { out.println(\"<option\"); if (i == year) { out.println(\" selected \"); } out.println(\">\" + i); } out.println(\"</select>年\"); //月 out.println(\"<select name=\'mm\'>\"); for (int i = 1; i <= 12; i++) { out.println(\"<option\"); if (i == month) { out.println(\" selected \"); } out.println(\">\" + i); } out.println(\"</select>月\"); out.println(\"</td>\"); out.println(\"<td><input type=\'submit\' value=\'更新\'></td>\"); out.println(\"</tr></table></form>\"); //カレンダーを表示する out.println(\"<table border=\'1\'>\"); out.println(\"<tr>\"); out.println(\"<td>日</td>\"); out.println(\"<td>月</td>\"); out.println(\"<td>火</td>\"); out.println(\"<td>水</td>\"); out.println(\"<td>木</td>\"); out.println(\"<td>金</td>\"); out.println(\"<td>土</td>\"); out.println(\"</tr>\"); //1日の曜日を取得する myCal.set(year, month - 1, 1); int dw1 = myCal.get(Calendar.DAY_OF_WEEK); //末日を取得する int lastd = myCal.getActualMaximum(Calendar.DAY_OF_MONTH); //表示する日付を初期化する int day = 0; //1日から末日まで日付を表示する 添付したcalendar.jspなのですが、ずばりココ↓の部分なのですが、 for (int i=0; i<=5; i++) { ここで最大は5以下になっているのですが、そうすると1列多くならないでしょうか。 これだと行数が6つになりますよね。 曜日のセルはその前に作っているので、曜日だけが入るのですから5行でいいと思うのですが、自分の考えは間違っているのでしょうか。 宜しくお願い致します。 for (int i = 0; i <= 5; i++) { if (day >= lastd) {break;} out.println(\"<tr>\"); for (int j = 0; j <= 6; j++) { day = i * 7 + j - dw1 + 2; if (day > lastd || day < 1) { out.println(\"<td> </td>\"); } else { out.println(\"<td>\" + day + \"</td>\"); } } out.println(\"</tr>\"); } out.println(\"</table>\"); %> </body> </html>

    • ベストアンサー
    • Java
  • 以下のJAVAプログラムでご質問です。

    import java.util.*; import java.io.*; import java.text.*; public class JTest9 { public static void main(String[] args) throws IOException { System.out.println("基準となる年月日を入力して下さい。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); String str2 = br.readLine(); String str3 = br.readLine(); int year = Integer.parseInt(str1); int month = Integer.parseInt(str2); int day = Integer.parseInt(str3); String targetDateText = year + "/" + month + "/" + day; int addDate = 10; SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); Date targetDate = sdf.parse(targetDateText); Calendar cal = Calendar.getInstance(); cal.setTime(targetDate); cal.add(Calendar.DATE,addDate); System.out.println(sdf.format(cal.getTime())); } } 上記は、コンソールから、年、月、日 を入力し、その入力した日付から10日後の日付を 出力しようとしているプログラムです。 しかし、17行目のsdf.parse(targetDateText);において、コンソール上に下記エラーが出ます。 Exception in thread "main" java.lang.Error: Unresolved compilation problem: 処理されない例外の型 ParseException このエラーを解決したいのですが、どのように修正すればよいのでしょうか。 ご助言の程、よろしくお願い致します。

    • ベストアンサー
    • Java
  • ラジオボタンで入力し、その結果をCGIで表示するプログラム

    htmlで <html> <head> </head> <body> <form method="get" action="question.cgi"> <table width="50" height="" border="1" bordercolor="black" bgcolor="white" cellSpacing="0" cellpadding="5"> <tr><th>/</th><th>yes</th><th>no</th></tr> <tr><th>1</th><td><input type="radio" name="char1"></td> <td><input type="radio" name="char1"></td></tr><br> <tr><th>2</th><td><input type="radio" name="char2"></td> <td><input type="radio" name="char2"></td></tr><br> <tr><th>3</th><td><input type="radio" name="char3"></td> <td><input type="radio" name="char3"></td></tr><br> <tr><th>4</th><td><input type="radio" name="char4"></td> <td><input type="radio" name="char4"></td></tr><br> </table> <input type="button" value="送信" ><input type="reset" value="リセット"><br> </form> </body> </html> と書き、C言語でCGIを書き、ラジオボタンを押して送信ボタンを押すと 1:yes,2:no,3:no,4:yesなどと文字列で出力したいのです。 getメソッドがいいのかpostメソッドいいのかも教えていただければうれしく思います。 (この質問ではgetメソッドを使っていますが、あまり気にしないでください)

    • ベストアンサー
    • CGI
  • クラスのフィールドの比較方法

    2つのクラスのフィールドを比較して、その結果を以下のように表示させたいのですが、どのようにプログラミングをすればいいのでしょうか? 例 class Car { String carname; int height; int width; int length; } class Garage { String garagename; int height; int width; int depth; } public class example { public static void main (String[] args) throws IOException { Car car[]; car = new Car[5]; System.out.println("車の情報を入力してください。"); BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in); for(int i=0; i<5; i++){ car[i] = new Car(); System.out.println(i+1 + "台目の車の名前を入力してください。"); String str1 = br1.readLine(); System.out.println("車の高さを入力してください。"); String str2 = br1.readLine(); System.out.println("車の幅を入力してください。"); String str3 = br1.readLine(); System.out.println("車の長さを入力してください。"); String str4 = br1.readLine(); int h1 = Integer.parseInt(str2); int w1 = Integer.parseInt(str3); int l1 = Integer.parseInt(str4); car[i].carname = str1; car[i].height = h1; car[i].weith =w1; car[i].length =l1; } for(int i=0; i<5; i++){ garage[i] = new Garage(); System.out.println(i+1 + "つ目の車庫の名前を入力してください。"); String str5 = br2.readLine(); System.out.println("車庫の高さを入力してください。"); String str6 = br2.readLine(); System.out.println("車庫の幅を入力してください。"); String str7 = br2.readLine(); System.out.println("車庫の長さを入力してください。"); String str8 = br2.readLine(); int h2 = Integer.parseInt(str6); int w2 = Integer.parseInt(str7); int d2 = Integer.parseInt(str8); garage[i].garagename = str2; garage[i].height = h2; garage[i].weith =w2; garage[i].depth =d2; } } 出力例 garage1 car3 garage2 car5 garage3 car4 garage4 car2 garage5 car1 よろしくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう