JavaRush /Блоги Java /Random-TG /Кофе-брейк №241. Чӣ тавр табдил додани сатрҳо ба массивҳо...

Кофе-брейк №241. Чӣ тавр табдил додани сатрҳо ба массивҳо - Дастури муфассал

Дар гурӯҳ нашр шудааст
Сарчашма: FreeCodeCamp Бо ин дастур шумо тарзи табдил додани сатрро ба массив меомӯзед. Ин маҳорат ҳангоми таҳияи барномаҳои коркарди матн ё кор бо додаҳо муфид хоҳад буд. Кофе-брейк №241.  Тарзи табдил додани сатрҳо ба массивҳо - Дастури муфассал - 1Сатр дар Java як гурӯҳи аломатҳост, дар ҳоле ки массив маҷмӯи унсурҳои як навъ аст. Шумо метавонед бо истифода аз раванди табдилдиҳӣ сатрро ба қисмҳо тақсим кунед ва сипас он қисмҳоро дар массив барои коркард ё таҳлor минбаъда нигоҳ доред. Усулҳои гуногуни Java барои табдил додани сатрҳо ба массивҳо мавҷуданд. Донистани онҳо ба шумо имкон медиҳад, ки якеро интихоб кунед, ки ба талаботи барномасозии шумо мувофиқ бошад.

Чӣ тавр бо истифода аз усули toCharArray() сатрро ба массив табдил додан мумкин аст

Усули toCharArray() функсияи дарунсохташудаи Java мебошад, ки ба шумо имкон медиҳад сатрро ба массиви аломатҳо ва ҳар як аломати сатр ба элементи массив табдил диҳед. Ин усул дар синфи String дастрас аст .

Синтаксис ва истифодаи усули toCharArray():

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

Шарҳи тартиби:

  1. Тағирёбандаи сатри str-ро эълон кунед ва ба он сатри дилхоҳро таъин кунед.
  2. Усули toCharArray()- ро дар сатри str истифода баред , то онро ба массиви аломатҳо табдил диҳед. Ин усул сатрро ба аломатҳои инфиродӣ тақсим мекунад ва массиви дорои ин аломатҳоро бармегардонад.
  3. Массиви аломатҳои ҳосилшударо дар тағирёбандаи charArray нигоҳ доред .
  4. Барои чопи ҳар як аломат дар алоҳидагӣ, тавассути charArray бо истифода аз даври for-ҳар такрор кунед.
Хулоса:
Салом Ҷаҳон !

Тарафҳои истифодаи toCharArray():

  • Оддӣ: Усули toCharArray() роҳи оддии табдил додани сатрро ба массиви аломатҳо бо як занги метод таъмин мекунад.
  • Хонданӣ: Массиви аломатҳои натиҷавӣ метавонад тавассути ҳалқаҳо ба осонӣ тағир дода шавад, идора карда шавад ё такрор карда шавад.
  • Сатрҳои тағирнашаванда: Азбаски сатрҳо дар Java тағирнопазиранд, табдил додани онҳо ба массиви аломатҳо метавонад ҳангоми иваз кардани аломатҳои инфиродӣ муфид бошад.

Камбудиҳои истифодаи toCharArray():

  • Зиёдшавии истифодаи хотира: Усули toCharArray() массиви аломатҳои навро эҷод мекунад, ки хотираи иловагӣ талаб мекунад. Ин метавонад мушкилот бошад, агар шумо бо сатрҳои калон кор кунед.
  • Иҷро: Эҷоди массиви аломатҳои нав ва нусхабардории аломатҳо метавонад дар муқоиса бо усулҳои дигар, махсусан барои сатрҳои дароз, ба баъзе таназзули кор оварда расонад.

Тарзи тақсим кардани сатр бо усули split()

Усули split() дар Java як роҳи қулай барои тақсим кардани сатр ба массиви зерсатрҳо дар асоси ҷудокунандаи додашуда мебошад. Ин усул дар синфи String дастрас аст .

Синтаксис ва истифодаи усули split():

String[] split(String delimiter)
Ин усул ҳамчун далел ҷудокунандаро мегирад, ки нуқтаҳоеро, ки дар он сатр бояд тақсим шавад, муайян мекунад. Ҷудокунанда метавонад ифодаи муқаррарӣ ё сатри оддӣ бошад. Рамзи намунавӣ, ки табдилро бо истифода аз split() нишон медиҳад :
string = "Hello,World,How,Are,You?"
delimiter = ","

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

Шарҳи тартиби:

  1. Мо як тағирёбандаи сатрро бо номи string муайян мекунем . Он матнеро дар бар мегирад, ки мо мехоҳем ҷудо кунем: "Салом, Ҷаҳон, Чӣ тавр, Ту?"
  2. Мо вергулро ( , ) муайян мекунем, ки мо мехоҳем барои ҷудо кардани сатр истифода барем ва онро ба тағирёбандаи ҷудокунанда таъин кунем .
  3. Сипас, мо усули split()- ро дар тағирёбандаи сатр истифода мебарем ва ҷудокунандаро ҳамчун аргумент мегузаронем . Ин сатрро ба зерсатрҳо дар ҳама ҷое, ки ҷудокунанда ёфт мешавад, тақсим мекунад .
  4. Усули split() рӯйхати зерсатрҳоро бармегардонад, ки мо онҳоро ба тағирёбандаи split_string таъин мекунем .
  5. Дар охир, мо рӯйхати split_string -ро чоп мекунем , то натиҷаро бубинем.
Хулоса:
['Салом', 'Ҷаҳон', 'Чӣ тавр', 'Оё', 'Шумо?']

Тарафҳои истифодаи split():

  • Қулай ва қулай истифода.
  • Ба шумо имкон медиҳад, ки сатрро дар асоси ҷудокунандаи муайян тақсим кунед.
  • Ифодаҳои муқаррариро ҳамчун ҷудокунанда дастгирӣ намуда, имконоти ҷудокунандаи чандирро фароҳам меорад.

Камбудиҳои истифодаи split():

  • Агар ҷудокунанда дар сатр ёфт нашавад, он гоҳ сатри аслӣ ҳамчун як унсури массиви натиҷавӣ баргардонида мешавад.
  • Ифодаҳои муқаррарӣ метавонанд барои кор кардан душвор бошанд ва нодуруст истифода шаванд, метавонанд ба натиҷаҳои ғайричашмдошт оварда расонанд.
  • Тақсим кардани сатри калон бо истифода аз ифодаи муқаррарии мураккаб метавонад аз ҷиҳати ҳисоббарорӣ гарон бошад.

Чӣ тавр бо истифода аз StringTokenizer сатрро ба массив табдил додан мумкин аст

Синфи StringTokenizer дар Java як синфи кӯҳнаест, ки роҳи қулайи токенизатсия ё тақсим кардани сатрро ба аломатҳои инфиродӣ фароҳам меорад. Он одатан барои табдил додани сатр ба массив тавассути тақсим кардани он дар асоси ҷудокунандаи муайян истифода мешавад.

Синтаксис ва истифодаи StringTokenizer:

Барои истифодаи StringTokenizer , шумо аввал бояд як намунаи синфи StringTokenizer эҷод кунед , ки сатр ва ҷудокунандаро ҳамчун параметр гузаронед:
StringTokenizer tokenizer = new StringTokenizer(inputString, delimiter);
Рамзи намунавӣ:
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);
        }
    }
}

Шарҳи тартиби:

  1. Рамз аз эҷоди an objectи StringTokenizer бо номи tokenizer аз сатри вуруд оғоз мешавад ва бо "," ҷудо шудааст .
  2. Усули countTokens() барои ба даст овардани шумораи умумии нишонаҳо дар сатри вуруд истифода мешавад. Ин арзиш дар тағирёбандаи tokenCount нигоҳ дошта мешавад .
  3. stringArray номдор бо андозаи баробар ба tokenCount сохта шудааст .
  4. Усули nextToken() дар як ҳалқа барои такрор кардани ҳар як аломат истифода мешавад ва ба он индекси мувофиқ дар stringArray таъин карда мешавад .
  5. Ниҳоят, барои чопи ҳар як элемент дар файли stringArray як даври for истифода мешавад .
Хулоса:
Салом Дунё чи хел?

Барномаҳои StringTokenizer

StringTokenizer метавонад дар як қатор сенарияҳо муфид бошад, аз ҷумла:
  • Таҳлor маълумоти воридшуда, ки бо ҷудокунандаи пайваста сохта шудааст.
  • Истихроҷи калимаҳо ё ҷузъҳои алоҳида аз ҷумла ё параграф.
  • Ҷудо кардани арзишҳои бо вергул ҷудошуда ба унсурҳои алоҳида.
  • Токенизатсияи матн барои таҳлor лексикӣ ё вазифаҳои коркарди забон.

Тарафҳои истифодаи StringTokenizer:

  • Оддӣ: Синтаксиси StringTokenizer оддӣ ва содда аст, ки онро барои шурӯъкунандагон дастрас мекунад.
  • Самаранокӣ: StringTokenizer аз ҷиҳати хотира ва иҷроиш дар муқоиса бо ифодаҳои муқаррарӣ ё тақсимоти дастӣ дар асоси аломатҳо самаранок аст.
  • Ҷудокунакҳои чандир: Шумо метавонед ҷудокунакҳои сершуморро муайян кунед ё маҷмӯи пешакӣ муайяншудаи ҷудокуниро истифода баред, ки барои аломатгузории универсалӣ имкон медиҳад.
  • Коркарди такрорӣ: StringTokenizer ба шумо имкон медиҳад, ки токенҳоро такроран коркард кунед ва онро барои коркарди сатрҳои калон бидуни боркунии ҳама чиз ба хотира якбора муфид мегардонад.

Тарафҳои истифодаи StringTokenizer:

  • Функсияҳои маҳдуд: StringTokenizer дорои баъзе хусусиятҳои пешрафтае, ки дар алтернативаҳои муосир мавҷуданд, ба монанди ифодаҳои муқаррарӣ, ки чандирии бештарро дар аломатгузории қолабҳои мураккаб таъмин мекунанд, надорад .
  • Дастгирии ифодаҳои муқаррарӣ нест: Баръакси усулҳои дигар, ба монанди усули split() , StringTokenizer наметавонад ифодаҳои муқаррариро ҳамчун ҷудокунанда истифода барад, ки қобorяти аломатгузории онро маҳдуд мекунад.
  • Дастгирии аломатҳои холӣ нест: StringTokenizer бо нобаёнӣ токенҳои холиро коркард намекунад. Агар шумо ҷудокунакҳои пайдарпай дошта бошед, онҳо ҳамчун ҷудокунандаи ягона баррасӣ карда мешаванд, ки ин метавонад ба натиҷаҳои ғайричашмдошт оварда расонад.
  • Синфи кӯҳнашуда: StringTokenizer як қисми чаҳорчӯбаи коллексияҳои қадимии Java мебошад ва интерфейси Iterable -ро амалӣ намекунад, яъне маънои онро надорад, ки онро дар доираи васеъшуда барои ҳалқаҳо истифода бурдан мумкин нест .

Чӣ тавр ба таври дастӣ ҳар як аломати сатрро ба элементи массив табдил додан мумкин аст

Дар баъзе ҳолатҳо, ба шумо шояд назорати бештар аз болои раванди табдилдиҳӣ ниёз дошта бошад ё мехоҳед онро мувофиқи талаботи мушаххаси худ танзим кунед. Дар чунин мавридҳо, шумо метавонед сатрро ба массив табдил диҳед, ки ҳар як аломати сатрро дастӣ такрор кунед ва онҳоро ба унсурҳои алоҳидаи массив таъин кунед. Рамзи намунавӣ, ки табдor дастиро нишон медиҳад:
string = "Hello, World!"
array = []

for char in string:
    array.append(char)

print(array)

Шарҳи тартиби:

  1. Мо сатри тағирёбандаи сатрро бо арзиши "Салом, Ҷаҳон!" муайян мекунем. .
  2. Мо рӯйхати холӣ бо номи array -ро оғоз мекунем .
  3. Мо ҳалқаи for -ро барои такрори ҳар як аломати сатр истифода мебарем .
  4. Дар дохor давра мо усули append()- ро барои илова кардани ҳар як аломат ба массив истифода мебарем .
  5. Пас аз анҷоми давра, мо массивро чоп мекунем , то натиҷаро бубинем.
Хулоса:
['H', 'e', ​​'l', 'l', 'o', ',', '', 'W', 'o', 'r', 'l', 'd', '!']

Афзалиятҳои табдor дастӣ:

  • Назорати пурраи раванди табдилро таъмин мекунад.
  • Имкон медиҳад, ки аломатҳо пеш аз таъин шудан ба массив танзим ё идора карда шаванд.
  • Вақте ки ба шумо ҳангоми табдилдиҳӣ амалиёти иловагӣ лозим аст, хуб кор мекунад.

Камбудиҳои табдor дастӣ:

  • Дар муқоиса бо усулҳои дарунсохт ба монанди toCharArray() ё split() code ва коркарди дастӣ бештарро талаб мекунад .
  • Аз сабаби раванди такрори дастӣ метавонад барои сатрҳои калон камтар самаранок бошад.
  • Хавфи хатогиҳоро дар сурати нодуруст иҷро кардан зиёд мекунад.
Шарҳ. Шумо беҳтар мебуд, ки усули табдor дастӣ интихоб кунед, агар ба шумо лозим аст, ки дар давоми раванди табдил амалиёти махсус иҷро кунед. Дар акси ҳол, усулҳои дарунсохт ба монанди toCharArray() ё split() барои содда ва самаранокӣ тавсия карда мешаванд .

Муқоисаи усулҳои гуногун

toCharArray():

  • Усули оддӣ ва равшан.
  • Массиви аломатҳоро, ки сатрро ифода мекунад, бармегардонад.
  • Муносиб барои табдor умумӣ бе талаботи махсус.

Зада шикастан():

  • Сатрро дар асоси ҷудокунандаи муайяншуда ба массив тақсим мекунад.
  • Агар ба шумо сатрро ба зерсатрҳо тақсим кардан лозим аст, муфид аст.
  • Дар интихоби қолаби ҷудокунанда чандирӣ фароҳам меорад.

StringTokenizer:

  • Махсусан барои аломатгузории сатри бар асоси ҷудокунанда тарҳрезӣ шудааст.
  • Ба шумо имкон медиҳад, ки аломатҳои ҷудокунандаро танзим кунед.
  • Муносиб аст, вақте ки ба шумо назорати гранулӣ аз болои раванди токенизатсия лозим аст.

Табдилдиҳии дастӣ:

  • Назорати пурраи раванди табдилро таъмин мекунад.
  • Ба шумо имкон медиҳад, ки амалиётҳои иловагиро оид ба рамзҳо танзим кунед.
  • Тавсия дода мешавад, агар ҳангоми табдилдиҳӣ талаботи махсус лозим бошад.

Чаро шумо бояд бидонед, ки чӣ гуна сатрро ба массив дар Java табдил диҳед?

Муҳимияти сатр ба табдor массив дар Java дар бисёрҷониба ва чандирии он барои коркарди додаҳост. Инҳоянд чанд сабабҳои асосии чаро қобorяти табдил додани сатр ба массив дар Java муҳим аст:
  • Манипуляцияи маълумот. Массивҳо роҳи сохтории нигоҳдорӣ ва коркарди маълумотро дар Java таъмин мекунанд. Бо табдил додани сатр ба массив, шумо метавонед ба аломатҳои инфиродӣ ё зерсатрҳо дастрасӣ пайдо кунед, маълумотро тағир диҳед ва амалҳои гуногунро ба мисли навъбандӣ, ҷустуҷӯ ё филтр иҷро кунед.
  • Амалҳои алгоритмӣ. Бисёре аз алгоритмҳо ва сохторҳои додаҳо дар Java вурудро дар шакли массивҳо талаб мекунанд. Бо табдил додани сатр ба массив, шумо метавонед ин алгоритмҳоро ба осонӣ татбиқ кунед ва амалиётҳоро ба монанди ҷудокунӣ, баргардонидан ё дарёфт кардани унсурҳои мушаххас иҷро кунед.
  • Таҳлил ва таҳлor матн. Сатрҳо аксар вақт маълумоти сохторӣ ё ҷудошударо дар бар мегиранд, ба монанди CSV (Арзишҳои вергул ҷудошуда) ё JSON (JavaScript Object Notation). Табдил додани сатр ба массив ба шумо имкон медиҳад, ки маълумотро тақсим ва таҳлил кунед, ки барои таҳлил, коркард ё истихроҷи иттилооти мушаххас имкон медиҳад.
  • Манипуляцияи сатр. Гарчанде ки сатрҳо маҷмӯи усулҳои коркарди худро доранд, массивҳо чандирии иловагиро пешниҳод мекунанд. Табдил додани сатр ба массив ба шумо имкон медиҳад, ки амалиётҳои хоси массивро, аз қабor индексатсия, буридан ё пайвастшавӣ истифода баред, то самараноктар идора кардани маълумот ё қонеъ кардани талаботи муайяни форматкунӣ истифода баред.
  • Мутобиқат: Дар баъзе сенарияҳо, ба шумо лозим меояд, ки сатрро ба массив табдил диҳед, то бо китобхонаҳо ё APIҳо, ки вуруди бар массивро интизоранд, ҳамкорӣ кунед. Бо анҷом додани табдил, шумо метавонед ба осонӣ маълумоти сатри худро бо ҷузъҳои беруна муттаҳид кунед, мутобиқатро таъмин кунед ва мубодилаи бефосилаи маълумотро фароҳам оред.

Хулоса

Дар ин мақола мо усулҳои гуногуни табдил додани сатрро ба массив дар Java баррасӣ кардем. Шумо дар бораи чор роҳҳои гуногун омӯхтаед: бо истифода аз усули toCharArray() , тақсим кардани сатр бо усули split() , бо истифода аз StringTokenizer ва ба таври дастӣ табдил додани ҳар як аломат ба элементи массив. Мо ҳар як усулро ба таври муфассал баррасӣ кардем, аз ҷумла синтаксис, истифода, рамзи намунавӣ, мусбат ва манфии онҳо.
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION