JavaRush /Java Blogu /Random-AZ /Kofe fasiləsi №241. Sətirləri massivlərə necə çevirmək ol...

Kofe fasiləsi №241. Sətirləri massivlərə necə çevirmək olar - Ətraflı Bələdçi

Qrupda dərc edilmişdir
Mənbə: FreeCodeCamp Bu təlimatla siz sətri seriala çevirməyi öyrənəcəksiniz. Bu bacarıq söz emal proqramlarını inkişaf etdirərkən və ya verilənlərlə işləyərkən faydalı olacaqdır. Kofe fasiləsi №241.  Sətirləri massivlərə necə çevirmək olar - Ətraflı Bələdçi - 1Java-da sətir simvollar qrupudur, massiv isə eyni tipli elementlərin toplusudur. Siz konvertasiya prosesindən istifadə edərək sətri hissələrə ayıra və sonra həmin parçaları sonrakı emal və ya təhlil üçün massivdə saxlaya bilərsiniz. Sətirləri massivlərə çevirmək üçün müxtəlif Java üsulları mövcuddur. Onları bilmək sizə proqramlaşdırma tələblərinizə ən uyğun olanı seçməyə imkan verəcək.

toCharArray() metodundan istifadə edərək sətri seriala necə çevirmək olar

toCharArray() metodu, sətri simvollar massivinə və sətirin hər simvolunu massivin elementinə çevirməyə imkan verən daxili Java funksiyasıdır. Bu üsul String sinifində mövcuddur .

toCharArray() metodunun sintaksisi və istifadəsi:

public class StringToArrayExample {
    public static void main(String[] args) {
        String str = "Hello, World!";

        // Преобразовать строку в массив символов
        char[] charArray = str.toCharArray();

        // Распечатать элементы массива
        for (char c : charArray) {
            System.out.println(c);
        }
    }
}

Prosedurun izahı:

  1. str dəyişənini elan edin və ona istədiyiniz sətri təyin edin.
  2. Onu simvol massivinə çevirmək üçün str sətirində toCharArray() metodundan istifadə edin . Bu üsul sətri fərdi simvollara bölür və həmin simvolları ehtiva edən massivi qaytarır.
  3. Yaranan simvol massivini charArray dəyişənində saxlayın .
  4. Hər simvolu ayrı-ayrılıqda çap etmək üçün hər bir döngədən istifadə edərək charArray vasitəsilə təkrarlayın .
Nəticə:
H e l l o , W o r l d !

toCharArray() istifadə etməyin üstünlükləri:

  • Sadəlik: toCharArray() metodu yalnız bir metod çağırışı ilə sətri simvol massivinə çevirməyin sadə yolunu təqdim edir.
  • Oxunma qabiliyyəti: Yaranan simvol massivi asanlıqla dəyişdirilə, manipulyasiya edilə və ya döngələr vasitəsilə təkrarlana bilər.
  • Dəyişməyən sətirlər: Java-da sətirlər dəyişməz olduğundan, onları simvollar massivinə çevirmək fərdi simvolları dəyişdirmək lazım olduqda faydalı ola bilər.

toCharArray() istifadə etməyin mənfi cəhətləri:

  • Yaddaşdan istifadənin artması: toCharArray() metodu əlavə yaddaş tələb edən yeni simvol massivi yaradır. Böyük simlərlə işləyirsinizsə, bu problem ola bilər.
  • Performans: Yeni simvol massivinin yaradılması və simvolların surətinin çıxarılması digər üsullarla müqayisədə, xüsusən də uzun sətirlər üçün performansın müəyyən dərəcədə azalması ilə nəticələnə bilər.

Split() metodundan istifadə edərək sətri necə bölmək olar

Java-da split() metodu sətri verilmiş ayırıcı əsasında alt sətirlər massivinə bölmək üçün əlverişli üsuldur. Bu üsul String sinifində mövcuddur .

Split() metodunun sintaksisi və istifadəsi:

String[] split(String delimiter)
Metod arqument kimi sətirin bölünməli olduğu nöqtələri təyin edən ayırıcı götürür. Ayırıcı müntəzəm ifadə və ya sadə sətir ola bilər. Split() istifadə edərək çevrilməni nümayiş etdirən kod nümunəsi :
string = "Hello,World,How,Are,You?"
delimiter = ","

split_string = string.split(delimiter)
print(split_string)

Prosedurun izahı:

  1. string adlı sətir dəyişənini təyin edirik . Orada ayırmaq istədiyimiz mətn var: “Salam, Dünya, Necəsən, Sən?”
  2. Biz sətri ayırmaq və onu ayırıcı dəyişənə təyin etmək üçün istifadə etmək istədiyimiz vergül ( , ) ayırıcısını təyin edirik .
  3. Daha sonra ayırıcını arqument kimi ötürərək sətir dəyişənində split() metodundan istifadə edirik . Bu, ayırıcının olduğu yerdə sətri alt sətirlərə bölür .
  4. Split() metodu split_string dəyişəninə təyin etdiyimiz alt sətirlərin siyahısını qaytarır .
  5. Nəhayət, nəticəni görmək üçün split_string siyahısını çap edirik .
Nəticə:
['Salam', 'Dünya', 'Necəsən', 'Sən', 'Sən?']

Split() istifadə etməyin üstünlükləri:

  • Rahat və istifadəsi asan.
  • Müəyyən edilmiş ayırıcı əsasında sətri bölməyə imkan verir.
  • Müntəzəm ifadələri ayırıcı kimi dəstəkləyir, çevik ayırıcı seçimləri təmin edir.

Split() istifadə etməyin mənfi cəhətləri:

  • Əgər sətirdə ayırıcı tapılmırsa, o zaman orijinal sətir yaranan massivin bir elementi kimi qaytarılır.
  • Daimi ifadələrlə işləmək çətin ola bilər və səhv istifadə gözlənilməz nəticələrə səbəb ola bilər.
  • Mürəkkəb müntəzəm ifadədən istifadə edərək böyük bir sətirin bölünməsi hesablama baxımından bahalı ola bilər.

StringTokenizer istifadə edərək bir sətri seriala necə çevirmək olar

Java-dakı StringTokenizer sinfi sətri fərdi tokenlərə ayırmaq və ya ayırmaq üçün rahat bir yol təqdim edən köhnə sinifdir. O, adətən müəyyən bir ayırıcı əsasında onu bölmək yolu ilə sətri massiləyə çevirmək üçün istifadə olunur.

StringTokenizer-in sintaksisi və istifadəsi:

StringTokenizer istifadə etmək üçün əvvəlcə sətir və ayırıcını parametrlər kimi ötürərək StringTokenizer sinifinin nümunəsini yaratmalısınız :
StringTokenizer tokenizer = new StringTokenizer(inputString, delimiter);
Nümunə kod:
import java.util.StringTokenizer;

public class StringToArrayExample {
    public static void main(String[] args) {
        String inputString = "Hello,World,How,Are,You?";

        // Creation an object StringTokenizer с разделителем ","
        StringTokenizer tokenizer = new StringTokenizer(inputString, ",");

        int tokenCount = tokenizer.countTokens();
        String[] stringArray = new String[tokenCount];

        // Преобразование каждого токена в элементы массива
        for (int i = 0; i < tokenCount; i++) {
            stringArray[i] = tokenizer.nextToken();
        }

        // Печать выходного массива
        for (String element : stringArray) {
            System.out.println(element);
        }
    }
}

Prosedurun izahı:

  1. Kod giriş sətirindən tokenizer adlı və "," ilə ayrılmış StringTokenizer obyekti yaratmaqla başlayır .
  2. CountTokens() metodu giriş sətirində mövcud olan tokenlərin ümumi sayını əldə etmək üçün istifadə olunur. Bu dəyər tokenCount dəyişənində saxlanılır .
  3. Çağırılan stringArray tokenCount- a bərabər ölçü ilə yaradılmışdır .
  4. NextToken() metodu hər bir işarəni təkrarlamaq və ona stringArray -da müvafiq indeksi təyin etmək üçün dövrədə istifadə olunur .
  5. Nəhayət, stringArray faylındakı hər bir elementi çap etmək üçün for loopundan istifadə olunur .
Nəticə:
Salam Dünya Necəsən?

StringTokenizer Tətbiqləri

StringTokenizer müxtəlif ssenarilərdə faydalı ola bilər, o cümlədən:
  • Ardıcıl ayırıcı ilə strukturlaşdırılmış daxiletmə məlumatlarını təhlil edin.
  • Cümlədən və ya paraqrafdan fərdi sözlərin və ya komponentlərin çıxarılması.
  • Vergüllə ayrılmış dəyərlərin ayrı-ayrı elementlərə ayrılması.
  • Leksik analiz və ya dil emalı tapşırıqları üçün mətn tokenizasiyası.

StringTokenizer istifadə etməyin üstünlükləri:

  • Sadəlik: StringTokenizer-in sintaksisi sadə və sadədir, onu yeni başlayanlar üçün əlçatan edir.
  • Səmərəlilik: StringTokenizer müntəzəm ifadələr və ya əl ilə xarakterə əsaslanan parçalanma ilə müqayisədə yaddaş və performans baxımından səmərəlidir.
  • Çevik ayırıcılar: Siz birdən çox ayırıcı təyin edə və ya universal işarələşdirməyə imkan verən əvvəlcədən təyin edilmiş məhdudlaşdırıcılar dəstindən istifadə edə bilərsiniz.
  • İterativ Qenerasiya: StringTokenizer tokenləri təkrar emal etməyə imkan verir ki, bu da onu hər şeyi bir anda yaddaşa yükləmədən böyük sətirləri emal etmək üçün faydalı edir.

StringTokenizer istifadə etməyin mənfi cəhətləri:

  • Məhdud funksionallıq: StringTokenizer müasir alternativlərdə tapılan, mürəkkəb nümunələrin tokenləşdirilməsində daha çox çeviklik təmin edən müntəzəm ifadələr kimi bəzi qabaqcıl xüsusiyyətlərə malik deyil .
  • Normal ifadələr üçün dəstək yoxdur: Split() metodu kimi digər üsullardan fərqli olaraq , StringTokenizer nizamlı ifadələri ayırıcı kimi istifadə edə bilməz, bu da onun işarələmə imkanlarını məhdudlaşdırır.
  • Boş nişanlar üçün dəstək yoxdur: StringTokenizer defolt olaraq boş tokenləri idarə etmir. Ardıcıl məhdudlaşdırıcılarınız varsa, onlar tək bir ayırıcı kimi qəbul edilir və bu, gözlənilməz nəticələrə səbəb ola bilər.
  • Köhnəlmiş sinif: StringTokenizer köhnə Java kolleksiyaları çərçivəsinin bir hissəsidir və İterable interfeysini həyata keçirmir , bu o deməkdir ki, genişləndirilmiş for looplarında istifadə edilə bilməz .

Bir sətrin hər simvolunu massiv elementinə əl ilə necə çevirmək olar

Müəyyən hallarda, konvertasiya prosesi üzərində daha çox nəzarətə ehtiyacınız ola bilər və ya onu xüsusi tələblərinizə uyğunlaşdırmaq istəyə bilərsiniz. Belə hallarda, sətirdəki hər simvolu əl ilə təkrarlamaq və onları massivin ayrı-ayrı elementlərinə təyin etməklə sətri massiləyə çevirə bilərsiniz. Əl ilə çevrilməni nümayiş etdirən kod nümunəsi:
string = "Hello, World!"
array = []

for char in string:
    array.append(char)

print(array)

Prosedurun izahı:

  1. "Salam, Dünya!" Dəyəri ilə sətir dəyişən sətrini təyin edirik. .
  2. array adlı boş siyahını işə salırıq .
  3. Biz sətirdəki hər simvolu təkrarlamaq üçün for loopundan istifadə edirik .
  4. Döngənin içərisində hər simvolu massivə əlavə etmək üçün append() metodundan istifadə edirik .
  5. Döngə tamamlandıqdan sonra nəticəni görmək üçün massivi çap edirik.
Nəticə:
['H', 'e', ​​'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!']

Əl ilə çevirmənin üstünlükləri:

  • Dönüşüm prosesi üzərində tam nəzarəti təmin edir.
  • Simvolları seriala təyin etməzdən əvvəl onları fərdiləşdirməyə və ya manipulyasiya etməyə imkan verir.
  • Dönüşüm zamanı əlavə əməliyyatlar yerinə yetirmək lazım olduqda yaxşı işləyir.

Əl ilə çevirmənin çatışmazlıqları:

  • toCharArray() və ya split() kimi daxili metodlarla müqayisədə daha çox kod və əl işlənməsi tələb olunur .
  • Əl ilə təkrarlama prosesinə görə böyük sətirlər üçün daha az səmərəli ola bilər.
  • Səhv tətbiq edildikdə səhv riskini artırır.
Qeyd. Dönüşüm prosesi zamanı xüsusi əməliyyatlar yerinə yetirmək lazımdırsa, əl ilə çevirmə üsulunu seçmək daha yaxşıdır. Əks halda, sadəlik və səmərəlilik üçün toCharArray() və ya split() kimi daxili metodlar.

Müxtəlif metodların müqayisəsi

toCharArray():

  • Sadə və aydın üsul.
  • Sətri təmsil edən simvol massivini qaytarır.
  • Xüsusi tələblər olmadan ümumi çevrilmələr üçün uyğundur.

bölün ():

  • Göstərilən ayırıcıya əsaslanaraq sətri sıraya bölür.
  • Bir sətri alt sətirlərə bölmək lazım olduqda faydalıdır.
  • Ayırıcı şablon seçimində çeviklik təmin edir.

StringTokenizer:

  • Xüsusi olaraq ayırıcı əsaslı sətir tokenizasiyası üçün nəzərdə tutulmuşdur.
  • Ayırıcı simvolları fərdiləşdirməyə imkan verir.
  • Tokenizasiya prosesi üzərində dənəvər nəzarətə ehtiyacınız olduqda uyğundur.

Əl ilə çevirmə:

  • Dönüşüm prosesi üzərində tam nəzarəti təmin edir.
  • Simvollar üzərində konfiqurasiya etməyə və əlavə əməliyyatları yerinə yetirməyə imkan verir.
  • Dönüşüm zamanı xüsusi tələblərə ehtiyac olduqda tövsiyə olunur.

Niyə Java-da sətri seriala çevirməyi bilməlisiniz?

Java-da sətirdən massivə çevrilmənin əhəmiyyəti məlumatların emalı üçün təklif etdiyi çox yönlülük və çeviklikdədir. Java-da sətri seriala çevirmək qabiliyyətinin vacib olmasının bəzi əsas səbəbləri bunlardır:
  • Məlumatların manipulyasiyası. Massivlər Java-da verilənləri saxlamaq və manipulyasiya etmək üçün strukturlaşdırılmış üsul təqdim edir. Bir sətri massiləyə çevirməklə siz fərdi simvollara və ya alt sətirlərə daxil ola, verilənləri dəyişdirə və çeşidləmə, axtarış və ya filtrləmə kimi müxtəlif əməliyyatları yerinə yetirə bilərsiniz.
  • Alqoritmik əməliyyatlar. Java-da bir çox alqoritmlər və məlumat strukturları massivlər şəklində daxiletmə tələb edir. Bir sətri massiləyə çevirməklə siz bu alqoritmləri asanlıqla tətbiq edə və xüsusi elementlərin çeşidlənməsi, geri qaytarılması və ya geri qaytarılması kimi əməliyyatları yerinə yetirə bilərsiniz.
  • Mətnin təhlili və təhlili. Sətirlər çox vaxt strukturlaşdırılmış və ya ayrılmış məlumatları ehtiva edir, məsələn, CSV (Vergüllə Ayrılmış Dəyərlər) və ya JSON (JavaScript Obyekt Notasiyası). Bir sətri massiləyə çevirmək məlumatı parçalamağa və təhlil etməyə imkan verir ki, bu da konkret məlumatın sonrakı təhlilinə, işlənməsinə və ya çıxarılmasına imkan verir.
  • Simli manipulyasiya. Sətirlərin öz manipulyasiya üsulları dəsti olsa da, massivlər əlavə rahatlıq təklif edir. Sətri massiləyə çevirmək verilənləri daha səmərəli idarə etmək və ya müəyyən formatlaşdırma tələblərinə cavab vermək üçün indeksləşdirmə, dilimləmə və ya birləşmə kimi massiv üçün xüsusi əməliyyatlardan istifadə etməyə imkan verir.
  • Uyğunluq: Bəzi ssenarilərdə massiv əsaslı girişi gözləyən kitabxanalar və ya API-lərlə qarşılıqlı əlaqə yaratmaq üçün sətri massiləyə çevirmək lazım ola bilər. Konversiyanı həyata keçirməklə siz simli məlumatlarınızı xarici komponentlərlə asanlıqla inteqrasiya edə, uyğunluğu təmin edə və problemsiz məlumat mübadiləsini təmin edə bilərsiniz.

Nəticə

Bu yazıda biz Java-da sətri seriala çevirməyin müxtəlif üsullarını müzakirə etdik. Siz dörd müxtəlif üsulla tanış oldunuz: toCharArray() metodundan istifadə etmək , split() metodundan istifadə edərək sətri bölmək , StringTokenizer istifadə etmək və hər simvolu əl ilə massiv elementinə çevirmək. Biz onların sintaksisi, istifadəsi, nümunə kodu, müsbət və mənfi cəhətləri daxil olmaqla hər bir metodu ətraflı şəkildə əhatə etdik.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION