Java输出string长度_Java如何获取数组和字符串的长度(length还是length())

Java如何获取数组和字符串的长度(length还是length())

发布于 2020-3-19|

复制链接

摘记: 限时 1 秒钟给出答案,来来来,听我口令:“Java 如何获取数组和字符串的长度?length 还是 length()?”在逛 programcreek 的时候,我发现了上面这个主题。说实话,我当时脑海中浮现出了这样一副惊心动魄的画面:面试官老马坐在我的对面,地中海式的发型令我敬佩有加。尽管略显疲惫,但他仍然自信地向我抛出了 ..

限时 1 秒钟给出答案,来来来,听我口令:“Java 如何获取数组和字符串的长度?length 还是 length()?”在逛 programcreek 的时候,我发现了上面这个主题。说实话,我当时脑海中浮现出了这样一副惊心动魄的画面:面试官老马坐在我的对面,地中海式的发型令我敬佩有加。尽管略显疲惫,但他仍然自信地向我抛出了上面这个问题。稍稍迟疑了一下,我回答说:“数组用 length,字符串用 length 跟上小括号”。老马不愧是面试中的高手,一瞬间就从我的回答中捕获到了不自信。我能感受得出来,因为我看到老马的嘴角微微地动了一下,似乎想要咂咂嘴。但出于对于我的礼貌,他克制住了。到底该用 length 还是 length(),说真的,我当时真有点吃不准,怀念 IDE 的代码自动提醒功能啊!

```java

int[] arr = new int[4];

System.out.println(arr.length);// 获取数组的长度

String str = "沉默王二";

System.out.println(str.length());// 获取字符串的长度

```

按理说,数组和字符串都是对象,访问长度都用 length() 方法就好了。为什么数组偏偏剑走偏锋用的 length 字段呢?首先呢,我们必须要明白:数组是一个容器,当它被创建后,不仅元素的类型是确定的,元素的个数也是确定的。换句话说,数组的长度是确定的,不可能再变长或者变短。因此,数组可以使用一个字段(length)来表示长度。创建数组的方法有两种,这个应该大家都知道了。一种是通过 new 关键字创建指定长度后再赋值,另外一种是通过 {} 直接进行初始化。

```java

// new

int[] arr = new int[4];

arr[0] = 0;

arr[1] = 1;

arr[2] = 2;

arr[3] = 3;

// {}

int [] arr1 = {0, 1, 2, 3};

```

但不管用哪种方法,数组的长度是可以明确知道的。并且不会再变长或者变短(学不了孙悟空的金箍棒)。由于数组也是对象,所以以下代码是合法的。

```java

Object arr2 = new int[4];

```

这就意味着数组继承了超类 java.lang.Object 的所有成员方法和字段。事实上,的确如此,我们可以通过以下代码来获取数组的类型信息 Class。

```java

Object arr2 = new int[4];

System.out.println(arr2.getClass());

Object arr3 = new String[4];

System.out.println(arr3.getClass());

```

输出的结果会是什么呢?

class [I

class [Ljava.lang.String;

class [I 表示一个“int 类型数组”在运行时的对象类型信息;class [Ljava.lang.String; 表示一个“字符串类型数组”在运行时的对象类型信息。那为什么数组不单独定义一个类来表示呢?就像字符串 String 类那样呢?一个合理的解释是 Java 将其隐藏了。假如真的存在一个 Array.java,我们也可以假想它真实的样子,它必须要定义一个容器来存放数组的元素,就像 String 类那样。

```java

public final class String

implements java.io.Serializable, Comparable, CharSequence {

/** The value is used for character storage. */

private final char value[];

}

```

但这样做真的有必要吗?为数组单独定义一个类,是不是有点画蛇添足的意味。那既然数组没必要定义成一个类,也就没有必要再定义一个 length() 方法来获取数组的长度了,直接用 length 这个字段就可以了,不是吗?那为什么字符串 String 类会有 length() 方法呢?来看一下源码就明白了。

```java

/**

* Returns the length of this string.

* The length is equal to the number of Unicode

* code units in the string.

*/

public int length() {

return value.length;

}

```

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 是的,你说得没错。在 Java 中,可以使用 `length()` 方法获取字符串数组长度。 对于字符串,`length()` 方法返回字符串中字符的个数,例如: ```java String str = "Hello World"; int len = str.length(); // len 的值为 11 ``` 对于数组,`length` 是一个属性而非方法,返回数组中元素的个数,例如: ```java int[] arr = {1, 2, 3, 4, 5}; int len = arr.length; // len 的值为 5 ``` 需要注意的是,`length` 只能用于数组,不能用于集合类,因为集合类的长度是通过 `size()` 方法获取的。 ### 回答2: Java使用方法length()可以获得字符串数组长度。 在Java中,length()方法是用于获取字符串长度的方法,它可以返回字符串中字符的个数。例如,对于字符串"Hello World",length()方法将返回11,因为该字符串有11个字符。 同样地,length属性也可以用于获取数组长度。在Java中,数组是一组相同类型的元素的集合,可以使用length属性获取数组中元素的个数。例如,对于整型数组int[] nums = {1,2,3,4,5},nums.length将返回5,因为该数组包含了5个整数。 需要注意的是,length()方法适用于字符串,而length属性适用于数组。这是因为字符串Java中的一个类,而数组是一个特殊的数据结构。 除了length()方法和length属性,Java还提供了其他的方法来获取字符串数组长度。例如,对于字符串来说,还可以使用方法charAt()来获取字符串中特定位置的字符,并通过循环来统计字符个数;对于数组来说,还可以使用for循环遍历数组,通过计数器来获取数组元素的个数。 总之,Java中的length()方法和length属性是获取字符串数组长度的常用方法,可以通过它们来获得字符串数组中元素的个数。 ### 回答3: Java使用方法`length( )`可以获得字符串数组长度。在Java中,字符串是一个类,它提供了许多有用的方法来处理字符串。其中一个方法是`length( )`,它返回字符串中字符的数量。例如,如果有一个字符串`str`,我们可以通过`str.length( )`来获取它的长度。 另外,Java中的数组也可以使用`length`属性来获取它的长度数组是一个固定大小的连续存储空间,可以存储多个相同类型的变量。当我们创建一个数组时,它会自动得到一个`length`属性,表示数组长度。我们可以通过访问数组变量`array`的`array.length`来获取数组长度。 需要注意的是,在Java中,字符串数组长度是不同的概念。字符串长度指的是字符串中字符的数量,而数组长度指的是数组中元素的数量。 综上所述,通过使用方法`length( )`,我们可以获得字符串数组长度。这对于我们在编程中需要操作字符串数组的场景非常有用,可以帮助我们更好地处理和管理数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值