Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่าง length และ length() ใน Java

length เป็น Instance Variable ของ Array ส่วน length() เป็น Method ของ String Class

length (Array)

  • Array เป็น Object ที่เก็บค่า จำนวนคงที่ (Fixed Size)
  • length คืน จำนวน Elements ใน Array
  • Initialize แล้ว เปลี่ยนขนาดไม่ได้ จึงเข้าถึง length ตรงได้
  • ใช้ได้กับ Array เท่านั้น

ตัวอย่าง


public class ArrayLengthTest {
    public static void main(String args[]) {
        int array[] = {1, 2, 3, 4, 5, 6, 7};
        System.out.println("Length of array: " + array.length);  // 7
    }
}

ผลลัพธ์


Length of array: 7

length() (String)

  • length() เป็น Method ของ String Class
  • คืน จำนวน Characters ใน String Object
  • String Length เปลี่ยนแปลงได้ (ผ่าน Operations) จึงต้องเป็น Method
  • String ใช้ char[] ภายในแต่ไม่ Expose ออกมา

ตัวอย่าง


public class StringLengthMethodTest {
    public static void main(String args[]) {
        String str = "Welcome to Tutorials Point";
        System.out.println("Length of String: " + str.length());  // 26
    }
}

ผลลัพธ์


Length of String: 26

ตารางเปรียบเทียบ

คุณสมบัติlength (Array)length() (String)
ประเภทInstance Variable (Field)Method
ใช้กับArray (T[], Object[])String, CharSequence, StringBuilder, StringBuffer
Syntaxarray.lengthstr.length()
ค่าที่คืนNumber of ElementsNumber of Characters (UTF-16 Code Units)
Mutable?Array Size FixedString Immutable, StringBuilder Mutable

ข้อสังเกตเพิ่มเติม

  • Collection.size() - ใช้กับ List, Set, Map (Interface Collection)
  • StringBuilder/StringBuffer.length() - Method เหมือน String
  • Java ไม่มี .length สำหรับ Collection (ต้องใช้ .size())

ความผิดพลาดพบบ่อย


// ERROR: Array ใช้ length()
int[] arr = {1,2,3};
int len = arr.length();  // Compile Error: length is not a method

// ERROR: String ใช้ length
String s = "Hello";
int len = s.length;      // Compile Error: length is not a field