Java 字符串数组: 是否有一个大小的方法?

我来自一个 php 背景,在 php 中,有一个 array_size()函数,它告诉您数组中使用了多少元素。

对于 String[]数组有类似的方法吗? 谢谢。

909726 次浏览
array.length

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

Length 最终属性

它是公共的和最终的财产。之所以是 final,是因为 Java 中的数组根据大小是不可变的(但是根据元素的值是可变的)

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

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

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

字符串[]哈哈 = {“ olle”,“ bulle”} ;

长度是2

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

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

这并不是你问题的真正答案,但是如果你想拥有一个像数组这样可以增长和缩小的东西,你就不应该在 java 中使用数组。您最好使用 数组列表或其他 List 实现。

然后可以调用 size ()来获取它的大小。

答案是“所有人”。一个 java 数组是用固定数量的元素槽分配的。“ length”属性将告诉您有多少个。该数字在数组的生命周期内是不可变的。对于可调整大小的等价物,您需要 java.util 中的一个。列出类——在这里您可以使用 size ()方法查找有多少元素正在使用。

然而,有“正在使用”,然后有 使用中。在类对象数组中,可以有元素为空对象的元素槽,所以即使它们计入了 length 属性,但是大多数人的定义都没有使用(YMMV,取决于应用程序)。没有返回 null/非 null 计数的内置函数。

列表对象还有另一个“正在使用”的定义。为了避免过度创建/破坏底层存储结构,这些类中通常有一些填充。它在内部使用,但在返回的 size ()方法中不计数。如果您尝试在不展开 List 的情况下访问这些项(通过 add 方法) ,您将得到一个非法索引异常。

因此,对于 List,您可以为非空、提交的元素、所有提交的元素(包括空元素)或所有元素(包括当前分配的展开空间)设置“ In Use”。

如果希望函数执行此操作

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

如果您不知道数组的类型,例如 int []、 byte []或 Object [] ,那么这将非常有用。

以上所有答案都是正确的。值得注意的是,数组有长度属性,但没有长度方法。每当你在 Java 中使用字符串和数组时,你可能面临的三个基本模型是:

  1. 字符串 s = 新字符串(“ vidyasagar”) ;
    Println (s.length ()) ;//在本例中,我们只使用 没有字符串的长度属性。我们必须使用 length () 方法。
  2. Int [] s = new int [10] ; System.out.println (s.length) ;//这里我们 使用数组的长度属性。
  3. 字符串[] s = 新字符串[10] ;
    Println (s.length) ;//这里,即使数据类型为 字符串,它不是一个单独的字符串 因此我们使用数组的长度属性来表示 许多字符串可以放入该数组。

另外,需要注意的是,如果您有一个多维 Array,那么只需在正在查询的数组后面附加一个“[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

需要澄清的是,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

是的,它实际上是没有()的 str.length 例如:

String[] strArray = {"how", "are", "you"};
strArray.length; //returns the length of the string