STRING Pada Java, string direpresentasikan dengan dua kelas : String, untuk string konstan (yang tidak berubah isinya setelah penciptaan) StringBuffer, untuk string yang memerlukan banyak manipulasi.
INSTANSIASI KELAS : Objek yang dicitakan berdasarkan deskripsi kelas
PENCIPTAAN STRING : 1. Implisit : menempatkan literal string (misal : “Hello World!”) di program, dan java akan menciptakan objek string secara otomatis. System.out.println(“Hello World!”); 2. Eksplisit : melakukan instansiasi objek kelas String. String aString = new String(“Saya Objek dari kelas String”); atau String aString; aString = “Saya objek dari kelas String”; atau String aString = “Saya objek dari kelas String”; Null String : String str = new String(); String str = “”;
CONSTRUCTOR : Constructor untuk kelas String adalah sebagai berikut : String() menciptakan Null string (string yang kosong) String(String value) Objek string dari objek string yang lain (termasuk dari string literal) String(char value[]) String dari array karakter String(char value[], int offset, int count) String dari subarray karakter String(byte ascii[], int hibyte, int offset, int count) Unicode String dari subarray byte menggunakan hibyte sebagai high byte untuk tiap-tiap karakter Unicode String(byte ascii[], int hibyte) Unicode String dari array byte menggunakan hibyte sebagai high byte untuk tiap-tiap karakter Unicode String(StringBuffer buffer) String dari objek StringBuffer.
1
MODIFIKASI PENYALINAN STRING Metode substring() Metode substring() mengirim substring dari objek string yang dipanggil 1. String substring(int beginIndex) Mengirim substring dimulai dari indeks yang dispesifikasikan oleh beginIndex sampai akhir objek String yang dipanggil. 2. String substring(int beginIndex, int endIndex) Mengirim substring dimulai dari indeks yang dispesifikasikan oleh beginIndex, dan berakhir dengan indeks yang dispesifikasikan endIndex. String s1 = new String(“mamamiami”); String s2 = s1.substring(3); String.s3 = s1.substring(2,7); Hasil : s2 = “amiami” s3 = “mamiam”
Metode concat() Menyambung dua objek String. String yang dispesifikasikan di parameter str disambung ke akhir objek String. String s1 = new String(“Saya makan malam sendiri”); 1. String s2 = new String(s1 + “di rumah”); dua String dapat disambung dengan menggunakan menggunakan operator “+” 2. String s3 = s1.concat(“di rumah”); menyambungkan dua String dengan metode concat() Hasil : “Saya makan malam sendiri di rumah.”
Metode replace() String replace(char oldChar, char newChar); Metode replace() mengganti karakter. Semua kemunculan oldChar diganti dengan newChar. String s1 = new String(“Saya makan malam sendiri”); String s3 = s1.concat(“di rumah”); String s4 = s3.replace(„s‟,‟m‟); Hasil : “Saya makan malam mendiri di rumah”
2
KONVERSI STRING "type wrapper" : 1. Integer 2. Double 3. Float 4. Long contoh : Integer x = Integer.valueOf(s9); Listing Program 1 : public class StringOperation { public static void main(String args[]) { String s1 = new String("Saya makan malam sendiri"); String s2 = new String(s1 + " di rumah"); System.out.println(s2); String s3 = s1.concat(" di rumah"); System.out.println(s3); String s4 = s3.replace('s', 'm'); System.out.println(s4); String s5 = s1.substring(4,10); System.out.println(s5); String s6 = s5.trim(); System.out.println(s6); String s7 = s6.toUpperCase(); System.out.println(s7); String s8 = s7.toLowerCase(); System.out.println(s8); String s9 = "123"; //"type wrapper" classes (Integer, Double, Float, and Long) Integer x = Integer.valueOf(s9); System.out.println(x); } } Hasil : Saya makan malam sendiri di rumah Saya makan malam sendiri di rumah Saya makan malam mendiri di rumah makan makan MAKAN makan 123
3
PERBANDINGAN STRING 1. Metode equals() mengirim nilai boolean berdasar kesamaan dua String secara case-sensitive.
2. Metode equalsIgnoreCase() mengirim nilai boolean berdasar kesamaan dua String secara case-insensitive
3. Metode compareTo() membandingkan dua String mengirimkan nilai bilangan int, yang menspesifikasikan apakah objek String pemanggil kurang dari, sama, atau lebih dari anotherString. masing-masing karakter dibandingkan dengan karakter di posisi yang sama di String lain sampai tidak cocok. ketika dua karakter tersebut tidak cocok, maka metode compareTo() mengkonversikan menjadi int dan menemukan perbedaan itu. nilai int : positif : objek String pemanggil (calling String) > objek yang dilewatkan. nol : objek String pemanggil (calling String) = objek yang dilewatkan. negatif : objek String pemanggil (calling String) < objek yang dilewatkan.
4
Listing Program 2 : public class StringCompare2 { public static void main(String args[]) { String aName = "ROcky"; String bName = "Rocky"; if (aName == bName) { System.out.println("== worked!"); }else System.out.println("== didn't work!"); if (aName.equals(bName)) { System.out.println("equals worked!"); }else System.out.println("equals didn't work!"); if (aName.equalsIgnoreCase(bName)) { System.out.println("equalsIgnoreCase worked!"); }else System.out.println("equalsIgnoreCase didn't work!"); String s1 = new String("abcfj"); String s2 = new String("abcdz"); System.out.println("String s1 = "+ s1); System.out.println("String s2 = "+ s2); System.out.println("Hasil perbandingan antara s1 dan s1 : " + s1.compareTo(s2)); System.out.println("Hasil perbandingan antara s1 dan s1 : " + s2.compareTo(s1)); } } Hasil : == didn't work! equals didn't work! equalsIgnoreCase worked! String s1 = abcfj String s2 = abcdz Hasil perbandingan antara s1 dan s1 : 2 Hasil perbandingan antara s1 dan s1 : -2
5
STRINGBUFFER kelas StringBuffer memungkinkan untuk menciptakan objek String yang dapat berubah, tidak seperti kelas String yang merepresentasikan konstanta string. modifikasi string di kelas StringBuffer tidak menciptakan objek baru, akan tetapi beroperasi langsung terhadap objek string itu sendiri. kelas StringBuffer merepresentasikan variabel string tidak konstan berguna ketika kita mengetahui nilai atau panjang string berubah selama dioperasikan.
CONSTRUCTOR String s1 = new String(“Ini adalah string!”); 1. StringBuffer() menciptakan objek StringBuffer yang kosong String sb1 = new StringBuffer(); 2. StringBuffer(int length) menciptakan objek StringBuffer yang panjangnya length karakter, diinisialisasi dengan spasi. String sb2 = new StringBuffer(32); 3. StringBuffer(String str) menciptakan objek StringBuffer dari objek String. berguna ketika perlu melakukan modifikasi objek String konstan. String sb3 = new StringBuffer(s1);
length()
memperoleh panjang atau jumlah karakter di objek StringBuffer
capacity()
serupa dengan metode length(), hanya saja metode ini mengirimkan banyak karakter di objek StringBuffer yang telah dialokasikan di memori. karakterkarakter dialokasikan untuk StringBuffer seperti yang dibutuhkan.
setLength()
secara eksplisit mengubah panjang StringBuffer untuk memotong string, dengan menspesifikasikan panjang yang lebih pendek
append()
menambah beragam tipe data ke akhir objek String. metode append() mengirim objek String yang telah dipanggil
insert()
memungkinkan untuk menyisipkan beragam tipe data di offset spesifik di StringBuffer. metode ini bekerja serupa dengan append(), tetapi letak datanya dapat ditentukan.
6
Listing program 3 : public class StringBuffer1 { public static void main(String args[]) { StringBuffer s1 = new StringBuffer(14); System.out.println("Kapasitas s1 = " + s1.capacity()); System.out.println("Panjang s1 = " + s1.length()); s1.append("Saya"); System.out.println(s1); System.out.println("Kapasitas s1 = " + s1.capacity()); System.out.println("Panjang s1 = " + s1.length()); s1.setLength(3); System.out.println(s1); System.out.println("Kapasitas s1 = " + s1.capacity()); System.out.println("Panjang s1 = " + s1.length()); } } Hasil : Kapasitas s1 = 14 Panjang s1 = 0 Saya Kapasitas s1 = 14 Panjang s1 = 4 Say Kapasitas s1 = 14 Panjang s1 = 3 Listing Program 4 : public class StringBuffer2 { public static void main(String args[]) { StringBuffer sb1 = new StringBuffer("2 + 2 = "); StringBuffer sb2 = new StringBuffer("Saya makan malam sendiri"); sb1.append(2 + 2); //nilai 2 + 2 dikonversi menjadi string "4" sb2.append(" di rumah"); sb2.insert(9, "yang indah"); System.out.println(sb1); System.out.println(sb2); } } Hasil : 2+2=4 Saya makayang indahn malam sendiri di rumah
7