کلاس String در جاوا
کلاس String در جاوا برای ایجاد و مدیریت دنبالهای از کاراکترها استفاده میشود و یکی از پرکاربردترین کلاسها در این زبان برنامهنویسی به شمار میرود. اشیاء کلاس String غیرقابل تغییر (immutable) هستند، به این معنا که پس از ایجاد نمیتوان مقدار آنها را تغییر داد.
ویژگیهای کلیدی کلاس String
1. غیرقابل تغییر (Immutable)
غیرقابل تغییر بودن به این معنی است که وقتی یک شیء از نوع String ایجاد شد، نمیتوان مقدار آن را تغییر داد.
مثال:
public class Main {
public static void main(String[] args) {
String text = "hello";
text.charAt(0) = 'H'; // خطای زمان کامپایل
}
}
توضیح:
خط text.charAt(0) = 'H';
باعث خطای زمان کامپایل میشود، زیرا متد charAt(0)
یک کاراکتر فقطخواندنی برمیگرداند و نمیتوان آن را به عنوان یک متغیر تغییر داد. در جاوا، String غیرقابل تغییر است و نمیتوان کاراکترهای آن را بهطور مستقیم ویرایش کرد.
2. ایمن در برابر چندنخی (Thread-Safe)
به دلیل غیرقابل تغییر بودن، اشیاء String میتوانند بدون نیاز به همگامسازی توسط چند نخ (Thread) به صورت ایمن استفاده شوند.
3. پشتیبانی از متدهای کاربردی مختلف
کلاس String یک کلاس نهایی (final) از پیش تعریفشده در بسته java.lang
است و متدهای متنوعی برای ایجاد، مدیریت و مقایسه رشتهها ارائه میدهد، مانند length()
, charAt()
, concat()
, equals()
و غیره.
مثال:
import java.io.*;
class GFG {
public static void main (String[] args) {
String str = "hello geeks";
System.out.println("طول رشته: " + str.length());
System.out.println("رشته با حروف بزرگ: " + str.toUpperCase());
}
}
خروجی:
Length of String-> 11
Changed String ->HELLO GEEKS
4. پیادهسازی اینترفیسها
کلاس String در جاوا سه اینترفیس مهم را پیادهسازی میکند:
-
CharSequence: امکان دسترسی به کاراکترهای رشته با استفاده از متدهایی مانند
charAt()
وlength()
را فراهم میکند. -
Comparable: امکان مقایسه دو رشته بهصورت لغتنامهای با متد
compareTo()
را فراهم میکند. -
Serializable: اجازه میدهد که اشیاء رشته به یک جریان بایت تبدیل شوند.
سازندههای (Constructors) کلاس String در جاوا
در جاوا، سازندههای کلاس String برای ایجاد اشیاء جدید از منابع مختلفی مانند آرایههای کاراکتر، آرایههای بایت یا رشتههای دیگر استفاده میشوند. اگرچه معمولاً رشتهها با لیترالها ساخته میشوند، سازندهها کنترل بیشتری روی نحوه ایجاد رشتهها ارائه میدهند.
مثال استفاده از سازندهها:
import java.io.*;
class Geeks {
public static void main(String[] args) {
// سازنده 1: ایجاد رشته با استفاده از کلمه کلیدی new
String str1 = new String("Hello Java");
System.out.println("رشته با new: " + str1);
// سازنده 2: ایجاد رشته از آرایه کاراکتر
char[] charArray = { 'J', 'A', 'V', 'A' };
String str2 = new String(charArray);
System.out.println("رشته از آرایه کاراکتر: " + str2);
// سازنده 3: ایجاد رشته از آرایه بایت
byte[] byteArray = { 72, 101, 108, 108, 111 };
String str3 = new String(byteArray);
System.out.println("رشته از آرایه بایت: " + str3);
}
}
خروجی:
String using literal: GeeksforGeeks
String using new keyword: Hello Java
String from char array: JAVA
String from byte array: Hello
جدول سازندههای کلاس String
سازنده | توضیح |
---|---|
String(byte[] byte_arr) |
ایجاد رشته جدید با دیکد کردن آرایه بایت با استفاده از مجموعه کاراکتر پیشفرض سیستم |
String(byte[] byte_arr, Charset char_set) |
ایجاد رشته جدید با دیکد کردن آرایه بایت با استفاده از مجموعه کاراکتر مشخص |
String(byte[] byte_arr, int start_index, int length) |
ایجاد رشته جدید از آرایه بایت با انتخاب تعداد مشخصی از کاراکترها از شاخص شروع |
String(byte[] byte_arr, int start_index, int length, Charset char_set) |
همانند مورد قبل، اما با استفاده از Charset مشخص |
String(char[] char_arr) |
ایجاد رشته جدید از آرایه کاراکتر داده شده |
String(char[] char_array, int start_index, int count) |
ایجاد رشته از آرایه کاراکتر، با انتخاب تعداد مشخصی کاراکتر از شاخص شروع |
String(int[] uni_code_points, int offset, int count) |
ایجاد رشته از آرایه نقاط یونیکد، با انتخاب تعداد مشخصی کاراکتر از شاخص شروع |
String(StringBuffer s_buffer) |
ایجاد رشته جدید از محتوای StringBuffer |
String(StringBuilder s_builder) |
ایجاد رشته جدید از محتوای StringBuilder |
ورود و ثبت نام برای ارسال نظر وارد شوید