JavaRush /Java Blogu /Random-AZ /Java-da string sinfi

Java-da string sinfi

Qrupda dərc edilmişdir
Java-da String sinfi Java-da sətirlərlə işləmək üçün nəzərdə tutulmuşdur. Java proqramında müəyyən edilmiş bütün sətir literalları (məsələn, "abc") String sinifinin nümunələridir. Onun əsas xüsusiyyətlərinə nəzər salaq:
  1. Sinif Serializablevə interfeyslərini həyata keçirir CharSequence. Paketə daxil olduğu üçün java.langidxalına ehtiyac yoxdur.
  2. Java-da String sinfi son sinifdir və uşaq sahibi ola bilməz.
  3. String sinfi dəyişməz sinifdir, yəni onun obyektləri yaradıldıqdan sonra dəyişdirilə bilməz. String sinifinin obyekti ilə nəticələnəcək String obyekti üzərində hər hansı əməliyyatlar yeni obyektin yaradılması ilə nəticələnəcək.
  4. Dəyişməzliyinə görə String sinif obyektləri iplik təhlükəsizdir və çox yivli mühitdə istifadə oluna bilər.
  5. toStringJava-dakı hər bir obyekt bütün Java siniflərinin sinifdən miras aldığı metod vasitəsilə sətirə çevrilə bilər Object.
Java-da string sinfi - 1

Java String ilə işləmək

Bu Java-da ən çox istifadə olunan siniflərdən biridir. O, sətirdəki müəyyən simvolların təhlili, sətirlərin müqayisəsi və axtarışı, alt sətirlərin çıxarılması, bütün simvolların kiçik və böyük hərflərə çevrildiyi sətir surətinin yaradılması və digər üsullara malikdir. String sinfinin bütün üsullarının siyahısını rəsmi sənədlərdə tapa bilərsiniz . Java həmçinin birləşdirmə (sətirləri birləşdirən), primitivləri sətirə və əksinə çevirmək üçün sadə mexanizm tətbiq edir. Java-da String sinfi ilə işləməyin bəzi nümunələrinə baxaq.

Sətirlərin yaradılması

String sinifinin nümunəsini yaratmağın ən asan yolu ona sətir hərfi dəyərini təyin etməkdir:
String s = "I love movies";
Bununla belə, String sinfində sizə imkan verən bir çox konstruktor var:
  • boş sətirdən ibarət obyekt yaradın
  • simli dəyişənin surətini yaradın
  • simvol massivi əsasında sətir yaradın
  • bayt massivi əsasında sətir yaradın (kodlaşdırmaları nəzərə alaraq)
  • və s.

Simli əlavə

Java-da iki sətir əlavə etmək +. Java sizə həm dəyişənləri, həm də sətir literallarını bir-birinə əlavə etməyə imkan verir:
public static void main(String[] args) {
    String day = "Day";
    String and = "And";
    String night = "Night";

    String dayAndNight = day + " " + and + " " + night;
}
String sinifinin obyektlərini digər siniflərin obyektlərinə əlavə etməklə, biz sonuncunu sətir formasına endiririk. Başqa siniflərin obyektlərinin sətir təsvirinə çevrilməsi toStringobyektdə gizli metod çağırışı vasitəsilə həyata keçirilir. Bunu aşağıdakı nümunə ilə nümayiş etdirək:
public class StringExamples {
    public static void main(String[] args) {
        Human max = new Human("Max");
        String out = "java object: " + max;
        System.out.println(out);
        // Output: Java object: Person named Max
    }

    static class Human {
        private String name;

        public Human(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "The Man with the Name" + name;
        }
    }
}

String müqayisəsi

Sətirləri müqayisə etmək üçün metoddan istifadə edə bilərsiniz equals():
public static void main(String[] args) {
    String x = "Test String";
    System.out.println("Test String".equals(x)); // true
}
Sətirləri müqayisə edərkən vəziyyət bizim üçün vacib olmadıqda, metoddan istifadə etməliyik equalsIgnoreCase():
public static void main(String[] args) {
       String x = "Test String";
       System.out.println("test string".equalsIgnoreCase(x)); // true
}

Obyektin/primitivin sətirə çevrilməsi

İstənilən Java sinifinin nümunəsini və ya hər hansı primitiv məlumat növünü sətir təsvirinə çevirmək üçün aşağıdakı metoddan istifadə edə bilərsiniz String.valueOf():
public class StringExamples {
    public static void main(String[] args) {
        String a = String.valueOf(1);
        String b = String.valueOf(12.0D);
        String c = String.valueOf(123.4F);
        String d = String.valueOf(123456L);
        String s = String.valueOf(true);
        String human = String.valueOf(new Human("Alex"));

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(s);
        System.out.println(human);
        /*
        Output:
        1
        12.0
        123.4
        123456
        true
        Person named Alex
         */
    }

    static class Human {
        private String name;

        public Human(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "The Man with the Name" + name;
        }
    }
}

Bir sətri nömrəyə çevirmək

Tez-tez bir sətri nömrəyə çevirmək lazımdır. Primitiv tipli sarğı sinifləri məhz bu məqsədə xidmət edən metodlara malikdir. Bütün bu üsullar parse sözü ilə başlayır. IntegerAşağıda sətirin tam ( ) və kəsr ( Double) ədədlərə tərcüməsini nəzərdən keçirin :
public static void main(String[] args) {
    Integer i = Integer.parseInt("12");
    Double d = Double.parseDouble("12.65D");

    System.out.println(i); // 12
    System.out.println(d); // 12.65
}

Sətirlər toplusunun simli təsvirə çevrilməsi

Əgər bəzi sətirlər kolleksiyasının bütün elementlərini ixtiyari ayırıcı vasitəsilə sətir təsvirinə çevirmək lazımdırsa, Java String sinfinin aşağıdakı üsullarından istifadə edə bilərsiniz:
  • join(CharSequence delimiter, CharSequence... elements)
  • join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
delimiterElement ayırıcı haradadır və sətir elementsmassivi/sətir kolleksiyası nümunəsidir. Hər birini nöqtəli vergüllə ayıraraq sətirlərin siyahısını sətirə çevirdiyimiz nümunəyə baxaq:
public static void main(String[] args) {
    List<String> people = Arrays.asList(
            "Philip J. Fry",
            "Turanga Leela",
            "Bender Bending Rodriguez",
            "Hubert Farnsworth",
            "Hermes Conrad",
            "John D. Zoidberg",
            "Amy Wong"
    );

    String peopleString = String.join("; ", people);
    System.out.println(peopleString);
    /*
    Output:
    Philip J. Fry; Turanga Leela; Bender Bending Rodriguez; Hubert Farnsworth; Hermes Conrad; John D. Zoidberg; Amy Wong
     */
}

Bir simli sətirlər massivinə bölmək

Bu əməliyyat metodu ilə yerinə yetirilir split(String regex) Ayırıcı sətir nizamlı ifadəsidir regex. Aşağıdakı nümunədə əvvəlki nümunədə etdiyimiz əməliyyatın əksini yerinə yetirəcəyik:
public static void main(String[] args) {
    String people = "Philip J. Fry; Turanga Leela; Bender Bending Rodriguez; Hubert Farnsworth; Hermes Conrad; John D. Zoidberg; Amy Wong";

    String[] peopleArray = people.split("; ");
    for (String human : peopleArray) {
        System.out.println(human);
    }
    /*
    Output:
    Philip J. Fry
    Turanga Leela
    Bender Bending Rodriguez
    Hubert Farnsworth
    Hermes Conrad
    John D. Zoidberg
    Amy Wong
     */
}

Xəttdə elementin mövqeyinin müəyyən edilməsi

Java dilində String simvolun/alt sətirin sətirdəki mövqeyini müəyyən etmək üçün bir sıra metodlar təqdim edir:
  1. indexOf(int ch)
  2. indexOf(int ch, int fromIndex)
  3. indexOf(String str)
  4. indexOf(String str, int fromIndex)
  5. lastIndexOf(int ch)
  6. lastIndexOf(int ch, int fromIndex)
  7. lastIndexOf(String str)
  8. lastIndexOf(String str, int fromIndex)
Harada:
  1. ch— axtardığınız simvol ( char)
  2. str- axtarış sətri
  3. fromIndex— elementin axtarılacağı mövqe
  4. üsullar indexOf- tapılan ilk elementin mövqeyini qaytarın
  5. üsullar lastIndexOf- tapılan sonuncu elementin mövqeyini qaytarın
Axtardığınız element tapılmadıqda, üsullar -1 sətrini qaytaracaq. Aİngilis əlifbasında , K, Z, hərflərinin seriya nömrəsini tapmağa çalışaq Я, lakin yadda saxlayın ki, Java-da sətirdəki simvolların indeksləşdirilməsi sıfırdan başlayır:
public static void main(String[] args) {
    String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    System.out.println(alphabet.indexOf('A')); // 0
    System.out.println(alphabet.indexOf('K')); // 10
    System.out.println(alphabet.indexOf('Z')); // 25
    System.out.println(alphabet.indexOf('Я')); // -1
}

Sətirdən alt sətirin çıxarılması

Sətirdən alt sətir çıxarmaq üçün Java-dakı String sinfi üsulları təmin edir:
  • substring(int beginIndex)
  • substring(int beginIndex, int endIndex)
Fayl adını onun yolundan əldə etmək üçün elementlərin yerləşdirilməsi və alt sətirlərin çıxarılması üsullarından necə istifadə edə biləcəyimizə baxaq:
public static void main(String[] args) {
    String filePath = "D:\\Movies\\Futurama.mp4";
    int lastFileSeparatorIndex = filePath.lastIndexOf('\\');
    String fileName = filePath.substring(lastFileSeparatorIndex + 1);
    System.out.println(fileName); //9
}

Sətri böyük/kiçik hərflərə çevirin:

String sinfi sətri böyük və kiçik hərflərə çevirmək üsullarını təqdim edir:
  • toLowerCase()
  • toUpperCase()
Bir nümunədən istifadə edərək bu üsulların necə işlədiyinə baxaq:
public static void main(String[] args) {
    String fry = "Philip J. Fry";

    String lowerCaseFry = fry.toLowerCase();
    String upperCaseFry = fry.toUpperCase();

    System.out.println(lowerCaseFry); // philip j. fry
    System.out.println(upperCaseFry); // PHILIP J. FRY
}
Bu Java sinfi ilə işləmək JavaRush onlayn kursunun ilkin səviyyələrində öyrənilir:

Əlavə mənbələr

String sinfi haqqında məlumat JavaRush icmasının digər məqalələrində də təqdim olunur:
  1. Java-da sətirlər - Bu məqalə Java-da sətirlərlə işləmək üçün bəzi əsasları əhatə edir.
  2. Java String. Müsahibə sualları və cavabları, 1-ci hissə - bu məqalə mövzu ilə bağlı müsahibə suallarını müzakirə edir String, həmçinin izahat və kod nümunələri ilə suallara cavab verir.
  3. Java-da strings (class java.lang.String) - bu məqalə String sinfinin daha dərin təhlilini təqdim edir, həmçinin bu siniflə işləməyin incəliklərini müzakirə edir.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION