car
が初期化されていない/要素のないString
の配列である次の行に問題があります。文字列配列の長さを見つける方法は?
String car [];
System.out.println(car.length);
解決策はありますか?
car
が初期化されていない/要素のないString
の配列である次の行に問題があります。文字列配列の長さを見つける方法は?
String car [];
System.out.println(car.length);
解決策はありますか?
car
は初期化されていないため、長さはありません。値はnull
です。しかし、コンパイラは、をとしてコンパイルすることを許可せず、次のエラーを投げます。可変車が初期化されていない可能性があります。
あなたが最初にそれを初期化する必要があり、その後、あなたが.length
を使用することができます。
String car[] = new String[] { "BMW", "Bentley" };
System.out.println(car.length);
あなたは空の配列を初期化する必要がある場合は、以下を使用することができます。
String car[] = new String[] { }; // or simply String car[] = { };
System.out.println(car.length);
あなたが必要な場合特定のサイズで初期化するには、次のように指定します。
String car[] = new String[3]; // initialize a String[] with length 3
System.out.println(car.length); // 3
car[0] = "BMW";
System.out.println(car.length); // 3
あなたはそれに要素を追加する場合は210
しかし、私は、あなたの代わりにList
を使用することをお勧めします:
List<String> cars = new ArrayList<String>();
System.out.println(cars.size()); // 0
cars.add("BMW");
System.out.println(cars.size()); // 1
+1はリストを提案するためのものであり、これは配列よりも動作するほうがより適切な*インタフェース*です。 –
あなたの最初のステートメントは "車は初期化されていないので、長さはありません。その値はnullです"というのは間違っています。 carは初期化されていないので、コードはコンパイルされません。潜在的に初期化されていない変数を参照するのは、コンパイル時エラーです。 – jarnbjo
あなたが正しいです、javacは本当にそのエラーをスローします。私はそれを説明するために私の答えを編集しました。 –
さて、この場合にはcar
変数は、それをデリファレンス、null
になります(あなたがそうであるようにcar.length
にアクセスするとNullPointerException
がスローされます)。一部の値は間違いなくそれに割り当てられるまで
実際には、あなたはすべてのでその変数にアクセスすることはできません - それ以外の場合は、コンパイラは、「変数の車は初期化されていない可能性があります」という文句を言うでしょう。
あなたはここで何をしようとしていますか(正確にはあなたが探している「解決策」がわかりません)。
これはダイナミックWebプロジェクトの一部として提供されています。ここでは、値が配列に格納されるかどうかはわかりません!!そして、配列が何かを持っているかどうかをチェックしたいのですが... –
String car [];
は、String-sの配列への参照です。そこに配列がないので長さを見ることはできません!
私はあなたがこれは動作しません。この
String[] car = new String[10];
int size = car.length;
wazzy:配列のサイズが手前で分かっていないのか? –
配列があなたの最良の選択肢ではないかもしれません。 @ジョアオが推奨するようにリストを見てください。 –
を探していると思います。最初に配列を初期化する必要があります。今のところ、null
を指すString []参照のみがあります。
長さメンバを読み取ろうとすると、実際にはnull.length
となり、NullPointerExceptionが発生します。
まだcar
を初期化していないので、JVM(Java Virtual Machine)に存在しないため、最初に初期化する必要があります。例えば
:
car = new String{"Porsche","Lamborghini"};
今、あなたのコードは正常に実行されます。
INPUT:
String car [];
car = new String{"Porsche","Lamborghini"};
System.out.println(car.length);
OUTPUT:上記のすべての答えとして
それはNullPointerExceptionがスローされます示唆しています。
いくつかの値で初期化してから、lengthプロパティを正しく使用してください。例:
配列 'str'が定義され、長さも定義された値になります。
はJavaでは、我々は
String []car;
String car[];
私たちは、new演算子を使用して配列を作成すると、そのタイプを指定することにより、アレイ(。例えば自動車)の文字列を宣言: -
String []car=new String[];
String car[]=new String[];
これは割り当て参照、文字列の配列へ、車へ。 また、それを初期化することによって、配列を作成することができます -
String []car={"Sedan","SUV","Hatchback","Convertible"};
あなたは、配列を初期化していないと、あなたがそれにアクセスしようとしている、にNullPointerExceptionがスローされているので。
解決方法はおそらく問題によって異なります。それが何であるか教えてください。 – jarnbjo