• ベストアンサー

Javaの疑問

Javaでわからない部分があります。 このコードの9行目のarry[i].lengthの部分が1なのがわからないです。AとBの2つだから2じゃないのですか?

  • Java
  • 回答数3
  • ありがとう数0

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

  • ベストアンサー
  • _kappe_
  • ベストアンサー率68% (1522/2216)
回答No.2

後ろに括弧がつかない.lengthとメソッド呼び出しである.length()の違いに気付いてください。 5行目の.lengthは括弧なしで、この場合array.lengthの値は2です。 一方、9行目はメソッド呼び出しです。i=0のときとi=1のときにarray[i]が何を表すか考えれば、その長さも分かるはずです。

その他の回答 (2)

  • wormhole
  • ベストアンサー率28% (1621/5656)
回答No.3

配列の扱い方を勉強してください。

回答No.1

いや、、 arrayの中に2個の[]要素があり、 array[n]の中に1個のstring要素があるので、1で正しい。 2を求めたいなら、array[n]...ではなく、array.lengthでしょうな。 なのだが、この問題文作った人、最悪です。 arrayって名前の変数を作るなんて、狂ってるとしか思えない。

関連するQ&A

  • Javaの判定処理について

    いつもお世話になっております。 以下のJavaのコードで、 ☆の部分のif文が何を実施しているのか 分からないのですが、 ご存知の方がいられましたら ご教授をいただけますでしょうか。 【コード】 String value = "あいうえお12345"; int length = value.length(); for (int i = 0; i < length; i++) { char c = value.charAt(i); if ((c & ~0x7f) != 0) { ←☆ 処理1 } }

    • ベストアンサー
    • Java
  • Javaのオーバーロードを使った問題

    class Book{ String title, size; int price; Book(String title, String size, int price){ this.title = title; this.size = size; this.price = price; } public String info(){ return title + " " + size; } public String info(String title){ return title + " " + size + " " + price +"円"; } public int info(String title, String size){ return price; } } ________________________________________________________ class Book_test{ public static void main(String[] args){ String[] title = {"図鑑","参考書","雑誌","地図"}; String[] size = {"B4", "A5", "A4", "A3"}; int[] price={4500, 1800, 600, 1400}; Book[] b = new Book[4]; for(int i=0; i<b.length; i++){ b[i] = ****; } for(int i=0; i<b.length; i++){ System.out.println(***); } for(int i=0; i<b.length; i++){ System.out.println(***); } for(int i=0; i<b.length; i++){ System.out.println(***); } } } 実行結果は、以下の通り 図鑑 B4 参考書 A5 雑誌 A4 地図 A3 図鑑 B4 4500円 参考書 A5 1800円 雑誌 A4 600円 地図 A3 1400円 4500 1800 600 1400 このように表示するために、javaのソースコードを書かなくてはならないのですが、***の部分に何を入れれば良いのか分かりません。 特に、for文の部分です。 classが苦手なので分かりやすく教えていただけると幸いです。

    • ベストアンサー
    • Java
  • javaで質問です。

    java初心者です。 unix系のコマンドでfindコマンドの動作と同じ動作をするプログラミングを教えて頂きたいです。 実行の際に、同時に引数としてディレクトリを渡すとそのディレクトリ以下のファイルが全て一覧表示されるというものです。 どうしても下記のコードから進まないです。 特にわからない部分は ・7行目の配列の確保にどのような引数を渡せばいいのか。 ・繰り返し処理の中で、ディレクトリかどうかの条件文で更に下位層をチェックしていきたいが、下位層にいかない。 ・16行目のcでチェックしている箇所が配列のどの部分なのかを引数で渡してそこにコピーたいのですが、9行目のint c;で何を渡せばいいのか分からない。 ・11行目の条件の4の部分も何を渡せばいいのかわからない。 です。 どうかご教授いただきますようお願いします。 1 import java.io.File; 2 import java.util.Arrays; 3 4 public class Find { 5 public static void main(String[] args) { 6 File findFile = new File(args[0]); 7 File names[] = new File[15] ; 8 names[0] = findFile; 9 int c = 0; 10 11 for (int i = 0; i < 4; i++) { 12 names[i] = findFile; 13 if (names[i].isDirectory()) { 14 File subfiles[] = names[i].listFiles(); 15 names[i] = subfiles[i]; 16 System.arraycopy(names, i, names, (i + c), subfiles.length); 17 } 18 } 19 for (int k = 0; k < names.length; k++) { 20 System.out.println(names[k]); 21 } 22 } 23 }

  • ajax api

    ajaxでapiから値を取得しています。 初心者で申し訳ありませんが、ajaxは非同期の通信を利用しているようですが、 同期かつリフレッシュなしで値を取得できないのでしょうか? よろしくお願いします。 function startWave(){ var arry=["a","b","c"]; for(var i=0;i<arry.length;i++){ dotAjax(arry[i]); } } function dotAjax(str){ $.ajax({ type: 'GET', 略 success:function( aのajax処理が終わったら、bのajax処理を行いたい } } }

  • ajaxでapi

    ajaxでapiから値を取得しています。 初心者で申し訳ありませんが、ajaxは非同期の通信を利用しているようですが、 同期かつリフレッシュなしで値を取得できないのでしょうか? よろしくお願いします。 function startWave(){ var arry=["a","b","c"]; for(var i=0;i<arry.length;i++){ dotAjax(arry[i]); } } function dotAjax(str){ $.ajax({ type: 'GET', 略 success:function( aのajax処理が終わったら、bのajax処理を行いたい } } }

    • ベストアンサー
    • AJAX
  • javaのコードについて

    今、javaの勉強をしています。 サンプルコードに、 String name=name1.substring(name1.length()) String job=job1.substring(0, job1.length() - 1); という2つのコードがあったのですが、いまいちコードの意味というか何を表しているのかよく分かりません。 どなたか教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • java(エラーメッセージについて)

    こんにちは。 javaの問題を解いているのですが、エラーメッセージを 解決することができません。 下記のプログラムです。 class Ex30{ public static void main(String args[]){ int week[][] ={ {50,70,80}, {80, 90, 100, 50, 70}, {60, 55, 70, 60} }; char n1[] = {'A', 'B', 'C'}; for(int i=0; i<week[i].length; i++){ System.out.print(n1[i] + "さんは" + week[i].length + "科目受講し、各科目の得点が"); for(int k=0; k<week[i].length; k++) System.out.print(week[i][k] + " "); System.out.println(""); } } } 実行結果 Aさんは3科目受講し、各科目の得点が50 70 80 Bさんは5科目受講し、各科目の得点が80 90 100 50 70 Cさんは4科目受講し、各科目の得点が60 55 70 60 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 at Ex30.main(Ex30.java:7) どなたかよろしくお願いします。

    • ベストアンサー
    • Java
  • Javaアルゴリズムで分からないことがあるので質問します。

    Javaアルゴリズムで分からないことがあるので質問します。 a,b,c,d,e,f,g これらの文字を各一回使ってできる文字列の、全てのパターンを一覧で表示したいのですが、なかなかうまくいきません。 出力結果は、下記のように全パターン出力するようなJavaプログラムなんですが。 ↓出力結果↓ abcdefgh abcdefhg abcdehfg ・・・・・・・・ hgfedacb hgfedcab hgfedcba ※自分ではとりあえずここまでできています。 public class Test {  public static void main(String[] args) {  String[] pattern = {"a","b","c","d","e","f","g","h"};   for(int i = 0; i <= pattern.length; i++){    System.out.print(pattern[i]);    if(i == pattern.length){   System.out.println("");    }   }  } } 宜しくお願いします。

  • Javaについて教えてください。

    下記のような表を作りたいのですがJavaのソースコードを教えてください。 さらにAとBの1回目より2回目が良くなったのかを比較するソースコードを加えてください。 ーーー   1回目   英語 国語 数学 平均 A  50 40 30 40 B  40 30 80 50   2回目   英語 国語 数学 平均 A  40 50 60 50 B  50 30 40 40

  • java 配列のソートについて

    JAVAを現在独学で勉強中ですが、わからないコードがあります。 プログラミングの先輩方、暇なときにでも教えてください。 for(int i=0; i<test.length; i++){ String str =br.readLine(); test[i] =Integer.parseInt(str); } for(int s=0;s<test.length-1;s++){ for(int t=s+1; t<test.length;t++){ if(test[t]>test[s]){ int tmp =test[t]; test[t] =test[s]; test[s]=tmp } } } 2回目のtest.length-1の-1はどういった役割を果たしてるんでしょうか? またjavaの構文の中でも、配列のソートがどうしても苦手です。 何かソートを理解するのにコツみたいなものがあれば、ご教授ください。 宜しくお願い致します。

    • ベストアンサー
    • Java

専門家に質問してみよう