charAt(), indexOf(), length() and substring()
Bu 4 metod String
‘in eyniadlı metodları ilə demək olar ki, eyni işi görür.
StringBuilder sb = new StringBuilder("animals"); String sub = sb.substring(sb.indexOf("a"), sb.indexOf("al")); int len = sb.length(); char ch = sb.charAt(6); System.out.println(sub+" "+len+" "+ch); // anim 7 s
substring()
metodu geriyə StringBuilder
yox String
qaytarır, ona görə də sb
referansının dəyəri dəyişmir.
StringBuilder sb = new StringBuilder("animals"); sb.substring(sb.indexOf("a"), sb.indexOf("al")); sb.append("-dog"); System.out.println(sb); // output is animals-dog, not anim-dog sb.append("a").substring(0, 4).insert(2, "asdf"); // DOES NOT COMPILE
Sonuncu sətir compile olunmur, çünki substring()
metodu geriyə String qaytarır və String
class’ının da insert()
metodu yoxdur.
append()
StringBuilder
`ə yeni parametrlər əlavə edir və geriyə həmin obyektin referansını qaytarır. append()
metodu 10`dan çox tipdə parametr qəbul edir. Əsas String
tipli parametrlə olan nümunələrə baxılır.
The method signature:
StringBuilder append(String str)
StringBuilder sb = new StringBuilder(50).append(1).append('c'); sb.append("-").append(true); System.out.println(sb); // output: 1c-true
İmtahanda mənə düşən və SYBEX kitabında olmayan yeganə sual 3 parametrli append()
metodu ilə bağlı idi.
The method signature:
public StringBuilder append(CharSequence s, int start, int end)
String s = new StringBuilder("sb").append("0123456789", 4, 8).toString(); System.out.println(s); // sb4567 new StringBuilder("sb").append("0123456789", 4, 11); //throws IndexOutOfBoundsException
insert()
StringBuilder
`də qeyd olunan indeksə yeni parametrlər əlavə edir və geriyə həmin obyektin referansını qaytarır.
The method signature:
StringBuilder insert(int offset, String str)
StringBuilder insert(int dstOffset, CharSequence s, int start, int end)
StringBuilder sb = new StringBuilder("animals"); sb.insert(7, "-"); // animals- sb.insert(0, "-"); // -animals- sb.insert(4, "-"); // -ani-mals- System.out.println(sb); String s2 = new StringBuilder("sb").insert(0, "0123456789", 4, 8).toString(); System.out.println(s2); // 4567sb new StringBuilder("sb").insert(0, "0123456789", 4, 11); // throws Exception
delete() and deleteCharAt()
delete()
metodu insert()
metodunun əksidir. Ardıcıllıqdan (sequence) simvolları silir və geriyə həmin obyektin referansını qaytarır. Əgər ancaq bir simvol silmək istəyiriksə, o zaman deleteCharAt()
metodu daha uyğundur.
The method signature:
StringBuilder delete(int start, int end)
StringBuilder deleteCharAt(int index)
StringBuilder sb = new StringBuilder("abcdef"); sb.delete(1, 3); // adef sb.deleteCharAt(5); // throws StringIndexOutOfBoundsException sb.delete(1); // DOES NOT COMPILE sb.delete(1, 45); // a
delete()
metodu aşağıdakı hallarda StringIndexOutOfBoundsException
verir:
start
parametri mənfi dəyər olarsa;start
String`in ölçüsündən (length) böyük olarsa;start
parametriend
parametrindən böyük olarsa.
deleteCharAt()
metodu aşağıdakı hallarda StringIndexOutOfBoundsException
verir:
index
mənfi dəyər alarsa;index
String`in ölçüsünə (length) bərabər və ya ondan böyük olarsa.
reverse()
Ardıcıllıqdakı (sequence) simvolları tərsinə çevirir və geriyə həmin obyektin referansını qaytarır.
The method signature:
StringBuilder reverse()
StringBuilder sb = new StringBuilder("Ismayil"); sb.reverse(); System.out.println(sb); // liyamsI
toString()
StringBuilder
`i String
`ə çevirir.
The method signature:
String toString()
String s = sb.toString();
[topics lang=az]