Java String数组:有一个大小的方法吗?

phi*_*ill 151 java arrays string

我来自php背景,在php中,有一个array_size()函数可以告诉你数组中有多少元素被使用.

String[]数组有类似的方法吗?谢谢.

Kri*_*ris 274

是的,.length(属性,不是方法):

String[] array = new String[10];
int size = array.length;
Run Code Online (Sandbox Code Playgroud)

  • 嗨,我们怎样才能找到列出数组对象的所有可能属性和功能的文档?我不是指Arrays对象,它是我能找到的唯一文档. (2认同)

jjn*_*guy 44

array.length
Run Code Online (Sandbox Code Playgroud)

它实际上是数组的最终成员,而不是方法.

  • 一个"伪字段",它被编译成一个特殊的数组长度操作码,而不是字段访问操作码. (3认同)
  • IIRC,它实际上不是一个领域,它只是一个. (2认同)
  • 这是一个字段,符合§10.7(http://java.sun.com/docs/books/jls/third_edition/html/arrays.html#10.7):"公共最终字段长度,包含组件数量数组(长度可以是正数或零)." (2认同)

Lia*_*ang 19

此外,注意如果你有一个多维数组可能很有用,你可以通过在你要查询的数组上附加'[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
    }

}
Run Code Online (Sandbox Code Playgroud)

产生输出:

5
12
Run Code Online (Sandbox Code Playgroud)


dfa*_*dfa 15

array.length最终属性

它是公共和最终财产.它是最终的,因为Java中的数组是不可变的大小(但可以通过元素的值变化)


wil*_*ood 14

数组是对象,它们有一个长度字段.

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

haha.length将是2

  • 阅读http://docs.oracle.com/javase/specs/jls/se8/html/jls-10.html的第一句话,然后尝试告诉我们数组不是对象.;) (9认同)
  • @jabbie:真的吗?你有参考吗?我只是质疑它,因为你可以说Object o = new String [] {"hello"}; (2认同)

bru*_*nde 11

在java中有一个length字段,您可以在任何数组上使用它来查找它的大小:

    String[] s = new String[10];
    System.out.println(s.length);
Run Code Online (Sandbox Code Playgroud)


Pet*_*rey 9

如果你想要一个功能来做到这一点

Object array = new String[10];
int size = Array.getlength(array);
Run Code Online (Sandbox Code Playgroud)

如果你不知道你有什么类型的数组,例如int [],byte []或Object [],这将非常有用.


小智 5

答案是"所有人".为java数组分配固定数量的元素槽."length"属性会告诉你多少.这个数字在数组的生命周期中是不可变的.对于可调整大小的等效项,您需要一个java.util.List类 - 您可以使用size()方法查找正在使用的元素数.

然而,有"使用",然后有在使用.在类对象数组中,您可以使用其元素为空对象的元素槽,因此即使它们计入length属性,但大多数人的定义,它们都没有被使用(YMMV,取决于应用程序).没有用于返回null /非null计数的内置函数.

列表对象具有"使用中"的另一个定义.为了避免过度创建/破坏底层存储结构,这些类中通常会有一些填充.它在内部使用,但不计入返回的size()方法.如果您尝试访问这些项而不扩展List(通过添加方法),您将获得非法索引异常.

因此,对于Lists,您可以为非null,已提交元素,所有已提交元素(包括null元素)或All元素(包括当前分配的扩展空间)使用"In Use".


Nzu*_*nto 5

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
Run Code Online (Sandbox Code Playgroud)