Loading...

Жолчолор менен аткарылуучу негизги операциялар

 

Саптарды бириктирүү

Саптарды бириктирүү үчүн кошумча ("+") операторун колдонсоңуз болот:

String str1 = "Java";

String str2 = "Hello";

String str3 = str1 + " " + str2;

        

System.out.println(str3); // Hello Java

Мындан тышкары, сап кошуу операциясында сап эмес объект, мисалы, сан колдонулса, анда бул объект сапка айландырылат:

String str3 = "Год " + 2015;

Чынында, сап эмес объектилер менен саптарды кошкондо, String классынын valueOf() ыкмасы чакырылат. Бул ыкма көптөгөн ашыкча жүктөмөлөргө ээ жана дээрлик бардык маалымат түрлөрүн сапка айлантат. Ар кандай класстардагы объекттерди которуу үчүн valueOf ыкмасы бул класстардын toString() ыкмасын чакырат.

 

Саптарды бириктирүүнүн дагы бир жолу - concat() ыкмасы:

String str1 = "Java";

String str2 = "Hello";

str2 = str2.concat(str1); // HelloJava

concat() методу чакыруучу сапты бириктирүү үчүн сапты алат жана бириктирилген сапты кайтарат.

 

Башка кошулуу ыкмасы - join() ыкмасы бөлгүчтү эске алуу менен саптарды бириктирүүгө мүмкүндүк берет. Мисалы, жогорудагы эки сап "HelloJava" деген бир сөзгө бириктирилген, бирок идеалдуу түрдө биз эки ички сап боштук менен бөлүнүшүн каалайбыз. Бул үчүн биз join() ыкмасын колдонобуз:

String str1 = "Java";

String str2 = "Hello";

String str3 = String.join(" ", str2, str1); // Hello Java

кошулуу ыкмасы статикалык болуп саналат. Биринчи параметр жалпы сапта ички саптарды бөлүп турган бөлгүч, жана бардык кийинки параметрлер үтүр менен бөлүнгөн ички саптардын ыктыярдуу топтомун өткөрөт - бул учурда эки сап дагы болушу мүмкүн

 

Символдорду жана ички саптарды чыгаруу

Символдорду индекс боюнча алуу үчүн String классы char charAt(int index) ыкмасын аныктайт. Ал символдорду алуу үчүн индексти алат жана алынган символду кайтарат:

String str = "Java";

char c = str.charAt(2);

System.out.println(c); // v

Массивдердегидей эле, индекстөө нөлдөн башталат.

 

Эгерде сизге бир эле учурда символдордун тобун же субсапты чыгаруу керек болсо, анда getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) ыкмасын колдонсоңуз болот. Ал төмөнкү параметрлерди кабыл алат:

 

srcBegin: символду чыгарууну баштоо үчүн саптагы индекс

 

srcEnd: символдор чыгарыла турган сапта индекс

 

dst: символдор чыгарыла турган символдор массиви

 

dstBegin: саптан алынган символдорду кошуу үчүн dst массивиндеги индекс

String str = "Hello world!";

int start = 6;

int end = 11;

char[] dst=new char[end - start];

str.getChars(start, end, dst, 0);

System.out.println(dst); // world

Сапты салыштыруу

Саптарды салыштыруу үчүн equals() (регистрди сезгич) жана equalsIgnoreCase() (каттарды сезбестен) методдору колдонулат. Эки ыкма тең параметр катары салыштыруу үчүн сапты алат:

String str1 = "Hello";

String str2 = "hello";

        

System.out.println(str1.equals(str2)); // false

System.out.println(str1.equalsIgnoreCase(str2)); // true

String str1 = "Hello";

String str2 = "hello";

        

System.out.println(str1.equals(str2)); // false

System.out.println(str1.equalsIgnoreCase(str2)); // true

Сандык жана примитивдүү типтеги башка маалыматтарды салыштыруудан айырмаланып, саптар == барабар белгисин колдонушпайт. Анын ордуна, equals() ыкмасын колдонуңуз.

 

Дагы бир атайын ыкма, regionMatches(), эки саптын ичиндеги айрым ички саптарды салыштырат. Анын төмөнкү формалары бар:

boolean regionMatches(int toffset, String other, int oofset, int len)

boolean regionMatches(boolean ignoreCase, int toffset, String other, int oofset, int len)

Метод төмөнкү параметрлерди кабыл алат:

 

  • ignoreCase: символдорду салыштырганда регистрге көңүл бурбоо керекпи. Эгер чын болсо, иш эске алынбайт

 

  • toffset: салыштыруу баштала турган чакыруу сапындагы баштапкы индекс

 

  • башка: чалуучу салыштырылган сап

 

  • oofset: салыштырууну баштоо үчүн салыштырылган саптын баштапкы индекси

 

  • len: эки сапта тең салыштырылган символдордун саны

 

Биз ыкманы колдонобуз:

String str1 = "Hello world";

String str2 = "I work";

boolean result = str1.regionMatches(6, str2, 2, 3);

System.out.println(result); // true

Бул учурда метод биринчи саптын 6-индексинен 3 символду («wor») жана экинчи саптын 2-индексинен («wor») 3 символду салыштырат. Бул ички саптар бирдей болгондуктан, чындык кайтарылат.

 

Жана дагы бир жуп ыкмалар int compareTo(String str) жана int compareToIgnoreCase(String str) да эки сапты салыштырууга мүмкүндүк берет, бирок алар ошондой эле бир саптын экинчисинен чоң же чоң эмес экенин аныктоого мүмкүндүк берет. Эгерде кайтаруу мааниси 0дөн чоң болсо, анда биринчи сап экинчиден чоңураак, эгерде ал нөлдөн аз болсо, анда, тескерисинче, экинчи сап биринчиден чоң болот. Эгерде саптар бирдей болсо, анда 0 кайтарылат.

Лексикографиялык тартип бир саптын экинчисинен чоң же кичине экендигин аныктоо үчүн колдонулат. Башкача айтканда, мисалы, алфавиттеги 'А' символу 'B' символунан мурун келгендиктен, "А" сабы "В" сабынан кичине. Эгерде саптардын биринчи символдору барабар болсо, анда кийинки символдор эске алынат. Мисалы:

String str1 = "hello";

String str2 = "world";

String str3 = "hell";

        

System.out.println(str1.compareTo(str2)); // -15 - str1 меньше чем strt2

System.out.println(str1.compareTo(str3)); // 1 - str1 больше чем str3

Саптан издөө

indexOf() методу сапта ички саптын биринчи пайда болушунун индексин табат, ал эми lastIndexOf() методу акыркы көрүнүштүн индексин табат. Эгерде субсап табылбаса, анда эки ыкма тең -1 кайтарат:

String str = "Hello world";

int index1 = str.indexOf('l'); // 2

int index2 = str.indexOf("wo"); //6

int index3 = str.lastIndexOf('l'); //9

startsWith() методу саптын белгилүү бир ички сап менен башталарын аныктоого мүмкүндүк берет, ал эми endsWith() методу саптын белгилүү бир ички сап менен аяктаарын аныктоого мүмкүндүк берет:

String str = "myfile.exe";

boolean start = str.startsWith("my"); //true

boolean end = str.endsWith("exe"); //true

Бир сапта алмаштыруу

replace() ыкмасы саптагы символдордун бир ырааттуулугун башкасына алмаштырууга мүмкүндүк берет:

String str = "Hello world";

String replStr1 = str.replace('l', 'd'); // Heddo wordd

String replStr2 = str.replace("Hello", "Bye"); // Bye world

Сапты кесүү

trim() ыкмасы алдыңкы жана арткы боштуктарды алып салууга мүмкүндүк берет:

String str = "  hello world  ";

str = str.trim(); // hello world

substring() методу белгилүү бир индекстен аягына же белгилүү бир индекске субсапты кайтарат:

String str = "Hello world";

String substr1 = str.substring(6); // world

String substr2 = str.substring(3,5); //lo

Регистрди өзгөртүү

toLowerCase() методу саптагы бардык символдорду кичине тамгага, ал эми toUpperCase() ыкмасы чоң тамгага которот:

String str = "Hello World";

System.out.println(str.toLowerCase()); // hello world

System.out.println(str.toUpperCase()); // HELLO WORLD

Split

Split() ыкмасы белгилүү бир бөлгүчтүн негизинде сапты субсаптарга бөлүүгө мүмкүндүк берет. Сепаратор - кээ бир символ же белгилердин топтому методго параметр катары берилет. Мисалы, текстти өзүнчө сөздөргө бөлөлү:

String text = "FIFA will never regret it";

String[] words = text.split(" ");

for(String word : words){

    System.out.println(word);

}

Бул учурда, сап боштуктар менен бөлүнөт. Консол чыгаруу:

FIFA

will

never

regret

it