بکندباز

متد ‎compareTo()‎‎ در جاوا

در این آموزش با کمک مثال هایی با متد compareTo() در جاوا آشنا می شویم.

متد compareTo() دو رشته را از نظر لغوی (به ترتیب فرهنگ لغت) مقایسه می کند. مقایسه بر اساس مقدار یونیکد هر کاراکتر در رشته ها انجام می شود.

مثال

class Main {
  public static void main(String[] args) {
    String str1 = "Learn Java";
    String str2 = "Learn Kolin";
    int result;

    // comparing str1 with str2
    result = str1.compareTo(str2);

    System.out.println(result);
  }
}

// Output: -1

سینتکس compareTo()

سینتکس متد compareTo() به صورت زیر است:

string.compareTo(String str)

در اینجا اینجا، string یک شی از کلاس String است.


پارامترهای compareTo()

متد compareTo()یک پارامتر واحد می گیرد.

  • str – رشته ای که باید مقایسه شود

مقدار بازگشتی compareTo()

  • اگر رشته ها مساوی باشند 0 را برمی گرداند
  • اگر در ترتیب فرهنگ لغت string قبل از آرگومان str بیاید ، یک عدد صحیح منفی برمی گرداند
  • اگر در ترتیب فرهنگ لغت string بعد از آرگومان str بیاید ، یک عدد صحیح مثبت برمی گرداند

مثال: متد compareTo() در جاوا

class Main {
  public static void main(String[] args) {
    String str1 = "Learn Java";
    String str2 = "Learn Java";
    String str3 = "Learn Kolin";
    int result;

    // comparing str1 with str2
    result = str1.compareTo(str2);

    System.out.println(result);  // 0

    // comparing str1 with str3
    result = str1.compareTo(str3);

    System.out.println(result);  // -1

    // comparing str3 with str1
    result = str3.compareTo(str1);

    System.out.println(result);  // 1
  }
}

در اینجا،

  • str1 و str2برابر هستند. بنابراین، str1.compareTo(str2) مقدار 0 را برمی گرداند.
  • در ترتیب حروف الفبا str1 پیش از str3 بنابراین، str1.compareTo(str3) یک مقدار منفی را برمیگرداند و str3.compareTo(str1) یک مقدار مثبت را برمی‌گرداند.

مثال 2: بررسی اینکه آیا دو رشته برابر هستند یا خیر

class Main {
  public static void main(String[] args) {
    String str1 = "Learn Python";
    String str2 = "Learn Java";
        
    // if str1 and str2 are equal, the result is 0
    if (str1.compareTo(str2) == 0) {

      System.out.println("str1 and str2 are equal");
    }
    else {
      System.out.println("str1 and str2 are not equal");
    }
  }
}

خروجی

str1 and str2 are not equal

مثال 3: compareTo() با بزرگی و کوچکی حروف

متد compareTo() به کوچکی و بزرگی حروف حساس است.

class Main {
  public static void main(String[] args) {
    String str1 = "Learn Java";
    String str2 = "learn Java";
    int result;

    // comparing str1 with str2
    result = str1.compareTo(str2);

    System.out.println(result);  // -32
  }
}

وقتی "Learn Java"با مقایسه می شود "learn Java" مقدار 0 برگردانده نمی شود. چرا که متد compareTo() به کوچکی و بزرگی حروف حساس است و حرف بزرگ قبل از حرف کوچک می آید. در نتیجه یک مقدار منفی برگردانده می شود.

یادداشت:

  • اگر نیاز به مقایسه دو رشته ای دارید که می خواهید به حروف بزرگ و کوچک حساس نباشد، از متد ()compareToIgnoreCase استفاده کنید.
  • اگر مقدار nullبه متد compareTo() ارسال شود با خطا مواجه می شوید.
zohreh

مدیر وب سایت بکندباز

دیدگاه‌ها

*
*