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:
startparametri mənfi dəyər olarsa;startString`in ölçüsündən (length) böyük olarsa;startparametriendparametrindən böyük olarsa.
deleteCharAt() metodu aşağıdakı hallarda StringIndexOutOfBoundsException verir:
indexmənfi dəyər alarsa;indexString`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]
