web-dev-qa-db-ja.com

Javaの文字列配列:メソッドのサイズはありますか?

私はphpの背景から来ています、そしてphpには、配列内のいくつの要素が使われているかを伝えるarray_size()関数があります。

String[]配列のための同様の方法はありますか?ありがとう。

145
phill

はい、.length(プロパティ風、メソッドではありません):

String[] array = new String[10];
int size = array.length;
267
Kris
array.length

メソッドではなく、実際には配列の最後のメンバーです。

44
jjnguy

また、多次元配列がある場合は、適切な軸/タプル/次元に到達するまで、照会している配列に '[0]'を追加するだけでそれぞれの次元を取得できます。

これはおそらく次のコードでよりよく説明されます。

public class Test {
    public static void main(String[] args){
        String[][] moo = new String[5][12];

        System.out.println(moo.length); //Prints the size of the First Dimension in the array
        System.out.println(moo[0].length);//Prints the size of the Second Dimension in the array
    }

}

これは出力を生成します:

5
12
19
Liang

array.length最終プロパティ

それは公的かつ最終的な財産です。 Javaの配列はサイズによって不変である(しかし要素の値によって不変である)ため、これは最終的なことです。

15
dfa

配列はオブジェクトであり、それらは長さフィールドを持ちます。

String [] haha​​ = {"olle"、 "bulle"};

haha.lengthは2になります

14

Javaには、サイズを調べるために任意の配列で使用できるlengthフィールドがあります。

    String[] s = new String[10];
    System.out.println(s.length);
11
bruno conde

関数にこれをさせたいのなら

Object array = new String[10];
int size = Array.getlength(array);

あなたが持っている配列の種類が分からない場合、これは役に立ちます。 int []、byte []、またはObject []。

8
Peter Lawrey

答えは「それらすべて」です。 Java配列には、固定数の要素スロットが割り当てられています。 "長さ"属性はあなたにいくつを教えてくれるでしょう。その数は配列の寿命の間不変です。サイズを変更できるものには、Java.util.Listクラスの1つが必要です。ここでは、size()メソッドを使用して使用中の要素の数を調べることができます。

しかし、「使用中」があり、次に使用中があります。クラスオブジェクト配列では、要素がnullオブジェクトである要素スロットを持つことができます。そのため、それらはlength属性に含まれますが、ほとんどの人の定義では使用されません(アプリケーションによってはYMMV)。 null/null以外の数を返すための組み込み関数はありません。

リストオブジェクトには、「使用中」という定義があります。基になるストレージ構造の過剰な作成/破壊を避けるために、これらのクラスには通常いくつかのパディングがあります。これは内部的に使用されますが、返されたsize()メソッドには含まれません。また、(addメソッドを使って)Listを展開せずにこれらの項目にアクセスしようとすると、不正なインデックス例外が発生します。

そのため、リストの場合は、null以外のコミット済み要素、すべてのコミット済み要素(null要素を含む)、または現在割り当てられている拡張スペースを含むAll要素を "使用中"にすることができます。

5
Tim H

明確にするためにStringarrayの長さには違いがあります。

int a[] = {1, 2, 3, 4};
String s = "1234";

a.length //gives the length of the array

s.length() //gives the length of the string
4
Valona

上記のすべての答えは正しいです。注意すべき重要な点は、配列には長さ属性がありますが長さメソッドはないことです。 Javaで文字列と配列を使うときはいつでも、直面する可能性のある3つの基本モデルは次のとおりです。

  1. 文字列s =新しい文字列( "vidyasagar");
    System.out.println(s.length()); //この場合はStringのみを使用しています。文字列の長さ属性はありません。 length()メソッドを使う必要があります。
  2. int [] s = new int [10]; System.out.println(s.length); //ここでは配列の長さ属性を使います。
  3. String [] s = new String [10];
    System.out.println(s.length); //ここではデータ型はStringですが、単一のStringではありません。 sは文字列の配列の参照です。そのため、配列の長さ属性を使用して、その配列に収まる文字列数を表現します。
2
vidyasagar

実際にはあなたの質問に対する答えではありませんが、配列を伸縮させることができるようなものが必要な場合は、Javaで配列を使用しないでください。おそらく ArrayList または他のList実装を使用するのが最善です。

それからsize()を呼び出してサイズを取得できます。

1