JavaRush /Java blogi /Random-UZ /Kofe tanaffusi №241. Satrlarni massivlarga qanday aylanti...

Kofe tanaffusi №241. Satrlarni massivlarga qanday aylantirish mumkin - Batafsil qo'llanma

Guruhda nashr etilgan
Manba: FreeCodeCamp Ushbu qo'llanma yordamida siz qatorni massivga qanday aylantirishni o'rganasiz. Ushbu mahorat matnni qayta ishlash dasturlarini ishlab chiqishda yoki ma'lumotlar bilan ishlashda foydali bo'ladi. Kofe tanaffusi №241.  Satrlarni massivlarga qanday aylantirish mumkin - Batafsil qo'llanma - 1Java tilidagi satr belgilar guruhidir, massiv esa bir xil turdagi elementlar to'plamidir. Konvertatsiya jarayonidan foydalanib, satrni qismlarga bo'lishingiz va keyinchalik qayta ishlash yoki tahlil qilish uchun ushbu qismlarni massivda saqlashingiz mumkin. Satrlarni massivlarga aylantirish uchun turli xil Java usullari mavjud. Ularni bilish sizga dasturlash talablariga eng mos keladiganini tanlash imkonini beradi.

ToCharArray() usuli yordamida qatorni massivga qanday aylantirish mumkin

toCharArray() metodi oʻrnatilgan Java funksiyasi boʻlib, qatorni belgilar massiviga, satrning har bir belgisini esa massiv elementiga aylantirish imkonini beradi. Ushbu usul String sinfida mavjud .

toCharArray() usulining sintaksisi va ishlatilishi:

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);
        }
    }
}

Jarayonni tushuntirish:

  1. Str o'zgaruvchisini e'lon qiling va unga kerakli qatorni belgilang.
  2. Uni belgilar qatoriga aylantirish uchun str satrida toCharArray() usulidan foydalaning . Bu usul qatorni alohida belgilarga ajratadi va shu belgilarni o'z ichiga olgan massivni qaytaradi.
  3. Olingan belgilar qatorini charArray o'zgaruvchisida saqlang .
  4. Har bir belgini alohida chop etish uchun har bir tsikldan foydalanib charArray orqali takrorlang .
Xulosa:
Salom Dunyo !

toCharArray() dan foydalanishning afzalliklari:

  • Oddiylik: toCharArray() usuli faqat bitta usul chaqiruvi yordamida satrni belgilar massiviga aylantirishning oddiy usulini taqdim etadi.
  • O'qilishi: Olingan belgilar massivi osonlik bilan o'zgartirilishi, boshqarilishi yoki tsikllar orqali takrorlanishi mumkin.
  • O'zgarmas satrlar: Java-da satrlar o'zgarmas bo'lgani uchun ularni belgilar qatoriga aylantirish alohida belgilarni o'zgartirish kerak bo'lganda foydali bo'lishi mumkin.

toCharArray() dan foydalanishning kamchiliklari:

  • Xotiradan foydalanishning ko'payishi: toCharArray() usuli qo'shimcha xotira talab qiladigan yangi belgilar qatorini yaratadi. Agar siz katta satrlar bilan ishlayotgan bo'lsangiz, bu muammo bo'lishi mumkin.
  • Ishlash: Yangi belgilar qatorini yaratish va belgilarni nusxalash boshqa usullar bilan solishtirganda, ayniqsa uzun satrlar uchun unumdorlikning biroz pasayishiga olib kelishi mumkin.

Split() usuli yordamida satrni qanday ajratish mumkin

Java tilidagi split() usuli qatorni berilgan ajratuvchi asosida pastki qatorlar qatoriga ajratishning qulay usuli hisoblanadi. Ushbu usul String sinfida mavjud .

Split() usulining sintaksisi va ishlatilishi:

String[] split(String delimiter)
Usul argument sifatida qatorning bo'linishi kerak bo'lgan nuqtalarni ko'rsatadigan chegaralovchini oladi. Ajratuvchi oddiy ifoda yoki oddiy satr bo'lishi mumkin. Split() yordamida konversiyani ko'rsatadigan misol kodi :
string = "Hello,World,How,Are,You?"
delimiter = ","

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

Jarayonni tushuntirish:

  1. Biz string deb nomlangan qator o'zgaruvchisini aniqlaymiz . Unda biz ajratmoqchi bo'lgan matn mavjud: "Salom, dunyo, qandaysiz, siz?"
  2. Biz satrni ajratish va uni ajratuvchi o'zgaruvchiga belgilash uchun foydalanmoqchi bo'lgan vergulni ( , ) belgilaymiz .
  3. Keyin argument sifatida ajratgichni o'tkazib, string o'zgaruvchisida split() usulidan foydalanamiz . Bu chegaralovchi topilgan joyda satrni pastki qatorlarga ajratadi .
  4. Split() usuli biz split_string o'zgaruvchisiga tayinlaydigan pastki qatorlar ro'yxatini qaytaradi .
  5. Nihoyat, natijani ko'rish uchun split_string ro'yxatini chop etamiz .
Xulosa:
['Salom', 'Dunyo', 'Qandaysiz', 'Sen', 'Sen?']

Split() dan foydalanishning afzalliklari:

  • Qulay va ishlatish uchun qulay.
  • Belgilangan ajratuvchi asosida qatorni ajratish imkonini beradi.
  • Oddiy iboralarni ajratuvchi sifatida qo'llab-quvvatlaydi va moslashuvchan ajratuvchi opsiyalarni taqdim etadi.

Split() dan foydalanishning kamchiliklari:

  • Agar satrda chegaralovchi topilmasa, u holda asl satr olingan massivning bir elementi sifatida qaytariladi.
  • Oddiy iboralar bilan ishlash qiyin bo'lishi mumkin va noto'g'ri qo'llanilishi kutilmagan natijalarga olib kelishi mumkin.
  • Murakkab muntazam ifoda yordamida katta satrni ajratish hisoblash qimmatga tushishi mumkin.

StringTokenizer yordamida qatorni massivga qanday aylantirish mumkin

Java'dagi StringTokenizer klassi eski sinf bo'lib, u satrni individual tokenlarga tokenlash yoki ajratishning qulay usulini ta'minlaydi. Odatda satrni belgilangan chegaralovchiga bo'lish orqali massivga aylantirish uchun ishlatiladi.

StringTokenizer sintaksisi va ishlatilishi:

StringTokenizer dan foydalanish uchun , avvalo, StringTokenizer sinfining namunasini yaratishingiz kerak , bunda qator va ajratuvchi parametr sifatida o‘tkaziladi:
StringTokenizer tokenizer = new StringTokenizer(inputString, delimiter);
Misol 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);
        }
    }
}

Jarayonni tushuntirish:

  1. Kod kirish satridan tokenizer nomli va "," bilan chegaralangan StringTokenizer obyektini yaratishdan boshlanadi .
  2. CountTokens() usuli kirish satrida mavjud tokenlarning umumiy sonini olish uchun ishlatiladi. Bu qiymat tokenCount o'zgaruvchisida saqlanadi .
  3. Chaqirilgan stringArray tokenCount ga teng o'lcham bilan yaratilgan .
  4. NextToken() usuli har bir tokenni takrorlash va unga stringArray da tegishli indeksni belgilash uchun tsiklda ishlatiladi .
  5. Nihoyat, stringArray faylidagi har bir elementni chop etish uchun for tsikli ishlatiladi .
Xulosa:
Salom Dunyo Qalaysiz?

StringTokenizer ilovalari

StringTokenizer turli stsenariylarda foydali bo'lishi mumkin, jumladan:
  • Izchil ajratuvchi bilan tuzilgan kirish maʼlumotlarini tahlil qilish.
  • Gap yoki paragrafdan alohida so'zlarni yoki tarkibiy qismlarni ajratib olish.
  • Vergul bilan ajratilgan qiymatlarni alohida elementlarga ajratish.
  • Leksik tahlil yoki tilni qayta ishlash vazifalari uchun matn tokenizatsiyasi.

StringTokenizer-dan foydalanishning afzalliklari:

  • Oddiylik: StringTokenizer sintaksisi sodda va tushunarli bo'lib, uni yangi boshlanuvchilar uchun ochiq qiladi.
  • Samaradorlik: StringTokenizer xotira va unumdorlik jihatidan muntazam ifodalar yoki qo'lda belgilarga asoslangan bo'linish bilan solishtirganda samarali.
  • Moslashuvchan chegaralagichlar: Siz bir nechta cheklovchilarni belgilashingiz yoki universal tokenizatsiyaga ruxsat beruvchi oldindan belgilangan chegaralovchilar to'plamidan foydalanishingiz mumkin.
  • Iterativ ishlov berish: StringTokenizer sizga tokenlarni iterativ tarzda qayta ishlash imkonini beradi, bu esa uni bir vaqtning o'zida xotiraga hamma narsani yuklamasdan katta satrlarni qayta ishlash uchun foydali qiladi.

StringTokenizer-dan foydalanishning kamchiliklari:

  • Cheklangan funksionallik: StringTokenizer zamonaviy muqobillarda mavjud boʻlgan baʼzi ilgʻor funksiyalarga ega emas, masalan, murakkab naqshlarni tokenlashda koʻproq moslashuvchanlikni taʼminlaydigan oddiy iboralar .
  • Muntazam iboralar qo'llab-quvvatlanmaydi: split() usuli kabi boshqa usullardan farqli o'laroq , StringTokenizer muntazam ifodalarni chegaralovchi sifatida ishlata olmaydi, bu uning tokenizatsiya imkoniyatlarini cheklaydi.
  • Bo'sh tokenlarni qo'llab-quvvatlamaydi: StringTokenizer sukut bo'yicha bo'sh tokenlarni ishlatmaydi. Agar sizda ketma-ket chegaralovchilar mavjud bo'lsa, ular bitta chegaralovchi sifatida ko'rib chiqiladi, bu esa kutilmagan natijalarga olib kelishi mumkin.
  • Eskirgan sinf: StringTokenizer eski Java to'plamlari ramkasining bir qismidir va Iterable interfeysini amalga oshirmaydi , ya'ni uni kengaytirilgan for looplarida ishlatib bo'lmaydi .

Qanday qilib satrning har bir belgisini massiv elementiga qo'lda aylantirish mumkin

Muayyan vaziyatlarda sizga konversiya jarayoni ustidan ko'proq nazorat kerak bo'lishi mumkin yoki uni maxsus talablaringizga moslashtirishni xohlashingiz mumkin. Bunday hollarda siz satrdagi har bir belgini qo'lda takrorlash va ularni massivning alohida elementlariga belgilash orqali satrni massivga aylantirishingiz mumkin. Qo'lda konvertatsiya qilishni ko'rsatadigan namuna kodi:
string = "Hello, World!"
array = []

for char in string:
    array.append(char)

print(array)

Jarayonni tushuntirish:

  1. Biz "Salom, dunyo!" Qiymati bilan qator o'zgaruvchi qatorini aniqlaymiz. .
  2. Biz massiv deb nomlangan bo'sh ro'yxatni ishga tushiramiz .
  3. Satrdagi har bir belgini takrorlash uchun for tsiklidan foydalanamiz .
  4. Loop ichida biz har bir belgini massivga qo'shish uchun append () usulidan foydalanamiz .
  5. Loop tugagandan so'ng, natijani ko'rish uchun massivni chop etamiz.
Xulosa:
['H', 'e', ​​'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!']

Qo'lda konvertatsiya qilishning afzalliklari:

  • Konvertatsiya jarayoni ustidan to'liq nazoratni ta'minlaydi.
  • Belgilarni massivga tayinlashdan oldin ularni moslashtirish yoki boshqarish imkonini beradi.
  • Konvertatsiya paytida qo'shimcha operatsiyalarni bajarish kerak bo'lganda yaxshi ishlaydi.

Qo'lda konvertatsiya qilishning kamchiliklari:

  • toCharArray() yoki split() kabi o'rnatilgan usullarga nisbatan ko'proq kod va qo'lda ishlov berishni talab qiladi .
  • Qo'lda takrorlash jarayoni tufayli katta satrlar uchun kamroq samarali bo'lishi mumkin.
  • Agar noto'g'ri bajarilgan bo'lsa, xatolar xavfini oshiradi.
Eslatma. Agar konvertatsiya jarayonida maxsus operatsiyalarni bajarish kerak bo'lsa, qo'lda aylantirish usulini tanlaganingiz ma'qul. Aks holda, soddalik va samaradorlik uchun toCharArray() yoki split() kabi o'rnatilgan usullar.

Turli usullarni taqqoslash

toCharArray():

  • Oddiy va tushunarli usul.
  • Satrni ifodalovchi belgilar qatorini qaytaradi.
  • Maxsus talablarsiz umumiy konvertatsiya qilish uchun javob beradi.

Split():

  • Belgilangan ajratuvchi asosida qatorni massivga ajratadi.
  • Agar siz satrni pastki qatorlarga bo'lishingiz kerak bo'lsa, foydalidir.
  • Ajratuvchi shablonni tanlashda moslashuvchanlikni ta'minlaydi.

StringTokenizer:

  • Maxsus ajratgichga asoslangan string tokenizatsiyasi uchun mo'ljallangan.
  • Ajratuvchi belgilarni sozlash imkonini beradi.
  • Tokenizatsiya jarayoni ustidan granulyar nazorat kerak bo'lganda mos keladi.

Qo'lda aylantirish:

  • Konvertatsiya jarayoni ustidan to'liq nazoratni ta'minlaydi.
  • Belgilar ustida qo'shimcha operatsiyalarni sozlash va bajarish imkonini beradi.
  • Konvertatsiya paytida maxsus talablar kerak bo'lsa tavsiya etiladi.

Nima uchun Java-da satrni massivga aylantirishni bilishingiz kerak?

Java-da satrni massivga aylantirishning ahamiyati uning ma'lumotlarni qayta ishlash uchun taqdim etadigan ko'p qirrali va moslashuvchanligidadir. Java-da satrni massivga aylantirish qobiliyati nima uchun muhimligining bir necha asosiy sabablari:
  • Ma'lumotlarni manipulyatsiya qilish. Massivlar Java-da ma'lumotlarni saqlash va manipulyatsiya qilishning tizimli usulini ta'minlaydi. Satrni massivga aylantirish orqali siz alohida belgilar yoki pastki qatorlarga kirishingiz, ma'lumotlarni o'zgartirishingiz va saralash, qidirish yoki filtrlash kabi turli operatsiyalarni bajarishingiz mumkin.
  • Algoritmik amallar. Java-dagi ko'plab algoritmlar va ma'lumotlar tuzilmalari massivlar shaklida kiritishni talab qiladi. Satrni massivga aylantirish orqali siz ushbu algoritmlarni osongina qo'llashingiz va muayyan elementlarni saralash, teskari o'zgartirish yoki olish kabi amallarni bajarishingiz mumkin.
  • Matnni tahlil qilish va tahlil qilish. Satrlar ko'pincha tuzilgan yoki ajratilgan ma'lumotlarni o'z ichiga oladi, masalan, CSV (vergul bilan ajratilgan qiymatlar) yoki JSON (JavaScript ob'ekt belgisi). Satrni massivga aylantirish ma'lumotlarni qismlarga ajratish va tahlil qilish imkonini beradi, bu esa aniq ma'lumotlarni keyingi tahlil qilish, qayta ishlash yoki chiqarish imkonini beradi.
  • String manipulyatsiyasi. Satrlar o'z manipulyatsiya usullari to'plamiga ega bo'lsa-da, massivlar qo'shimcha moslashuvchanlikni taklif qiladi. Satrni massivga aylantirish sizga ma'lumotlarni yanada samarali boshqarish yoki muayyan formatlash talablariga javob berish uchun indekslash, kesish yoki birlashtirish kabi massivga xos amallardan foydalanish imkonini beradi.
  • Moslik: Ba'zi stsenariylarda siz qatorga asoslangan kirishni kutadigan kutubxonalar yoki API bilan o'zaro ishlash uchun qatorni massivga aylantirishingiz kerak bo'lishi mumkin. Konvertatsiyani amalga oshirish orqali siz simli ma'lumotlaringizni tashqi komponentlar bilan osongina birlashtira olasiz, bu muvofiqlikni ta'minlaydi va uzluksiz ma'lumotlar almashinuvini ta'minlaydi.

Xulosa

Ushbu maqolada biz Java-da qatorni massivga aylantirishning turli usullarini ko'rib chiqdik. Siz to'rt xil usul haqida bilib oldingiz: toCharArray() usulidan foydalanish, split() usuli yordamida satrni ajratish , StringTokenizer yordamida va har bir belgini massiv elementiga qo'lda aylantirish. Biz har bir usulni, jumladan, sintaksisi, ishlatilishi, namuna kodi, ijobiy va salbiy tomonlarini batafsil ko'rib chiqdik.
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION