Class String
Tuesday, 24 April 12
Objectives:
Mempelajari literal string Mempelajari constructor di string Mempelajari method yang umum digunakan Memahami immutable string Memformat angka ke string
Tuesday, 24 April 12
Fakta mengenai class string
Object string merepresentasikan sekumpulan karakter. Class string adalah bagian dari java.lang package, sehingga tidak membutuhkan import statement. Seperti class lainnya, String memiliki constructors dan methods. Tidak seperti class lainnya, String memiliki dua operator, + dan += (digunakan untuk menggabung String).
Tuesday, 24 April 12
Literal Strings
adalah object dari class String yang anonymous didefinisikan menggunakan double quotes di awal dan akhir string. “Ini adalah literal string” tidak perlu diconstruct dapat di-assign ke variabel dapat digunakan sebagai parameter suatu method atau constructor memiliki method yang bisa dipanggil
Tuesday, 24 April 12
Contoh Literal String //assign literal string ke variabel string String nama = “Alimun”; //memanggil method dari literal string char firstInitial = “Alimun”.charAt(0); //memanggil method dari variabel String char firstInitial = name.charAt(0);
Tuesday, 24 April 12
Immutability
Sekali dibuat, string tidak bisa diubah: tidak ada method yang bisa digubakan untuk mengubah nilai string. Object seperti ini, disebut immutable. Immutable objects memiliki sifat yang aman, sebab beberapa reference akan mengacu ke object yang sama dengan nilai yang tetap, tanpa ada kekhawatiran nilai akan berubah
Tuesday, 24 April 12
Keuntungan dari Immutability Menggunakan memori lebih sedikit String kata1 = "Java"; String kata2 = kata1; kata1
“Java" kata2
OK
Tuesday, 24 April 12
String kata1 = “Java"; String kata2 = new String(kata1); kata1
“Java"
kata2
“Java"
Tidak efisien: pembnorosan memory
Kerugian dari Immutability Kurang efisien -- perlu membuat string baru dan menghapus string lama, meskipun perubahannya minimal String kata = “java"; char ch = Character.toUpperCase(kata.charAt (0)); kata = ch + kata.substring (1); kata
“java" “Java"
Tuesday, 24 April 12
Strings Kosong
String kosong tidak memiliki karakter. Panjangnya 0. String kata1 = ""; String kata2 = new String();
String kosong
Berbeda dengan string yang tidak diinisialisasi private String errorMsg;
Tuesday, 24 April 12
errorMsg adalah null
No Argument Constructors
No-argument constructor membuat string kosong. Jarang digunakan. String kosong = new String();
Pendekatan yang umum adalah melakukan assignment suatu variabel dengan literal string yang kosong. String kosong = “”;//tidak ada apa2 di antara quotes
Tuesday, 24 April 12
Copy Constructors
Copy constructor membuat duplikat dari String yang telah ada. Juga jarang digunakan Tidak sama dengan assignment Copy Constructor: Tiap variabel menunjuk ke object string yang berbeda
String kata = new String(“Java”); String kata2 = new String(kata);
kata kata2
“Java" “Java"
Assignment: kedua variabel menunjuk ke object yang sama String kata = “Java”; String kata2 = kata;
Tuesday, 24 April 12
kata kata2
“Java"
Constructors lainnya Sebagian besar constructor yang lain menggunakan array bertipe karakter untuk membuat string char[] karakter = {‘J’, ‘a’, ‘v’, ‘a’}; String kata = new String(karakter);//”Java”
Tuesday, 24 April 12
Methods — length, charAt int length();
Mendapatkan panjang string
char charAt(i);
Mendapatkan karakter di posisi i
Posisi karakter dimulai pada posisi 0, seperti array. Returns: ”Problem".length(); ”Window".charAt (2);
Tuesday, 24 April 12
Methods — length, charAt int length();
Mendapatkan panjang string
char charAt(i);
Mendapatkan karakter di posisi i
Posisi karakter dimulai pada posisi 0, seperti array. Returns: ”Problem".length();
7
”Window".charAt (2);
’n'
Tuesday, 24 April 12
Methods — substring Mengembalikan string baru dengan meng-kopi serangkaian karakter dari string yang ada.
String subs = kata.substring (i, k); mengembalikan substring dari posisi i ke k-1 String subs = kata.substring (i); mengembalikan substring dari posisi i hingga akhir
”television".substring (2,5); “immutable".substring (2); “bob".substring (9); Tuesday, 24 April 12
television i
k
television i Returns:
Methods — substring Mengembalikan string baru dengan meng-kopi serangkaian karakter dari string yang ada.
String subs = kata.substring (i, k); mengembalikan substring dari posisi i ke k-1 String subs = kata.substring (i); mengembalikan substring dari posisi i hingga akhir
”television".substring (2,5); “immutable".substring (2); “bob".substring (9); Tuesday, 24 April 12
television i
k
television i Returns: “lev" “mutable" "" (empty string)
Methods — Concatenation String kata1 = “re”, kata2 = “think”; kata3 = “ing”; int num = 2;
String result = kata1 + kata2; //menggabung kata1 dan kata2 “rethink“
String result = kata1.concat (kata2); //menggabung kata1 dan kata2 “rethink“
result += kata3; //menggabung kata1 ke result “rethinking”
result += num; //mengubah num menjadi string //menggabung hasilnya ke result “rethinking2”
Tuesday, 24 April 12
Methods — Find (indexOf) 0 2
6
9 11
String nama =“Presiden Soekarno"; Returns: 0 2
nama.indexOf (‘P'); nama.indexOf (‘e'); nama.indexOf (“Soekarno"); nama.indexOf (‘e', 3); 6 nama.indexOf (“Bob"); -1 nama.lastIndexOf (‘e');
Tuesday, 24 April 12
11
9(mulai posisi ketiga) (ngga ketemu)
Methods — Equality boolean b = kata1.equals(kata2); returns true jika kata1 sama dengan kata2 boolean b = kata1.equalsIgnoreCase(kata2); returns true jika string kata1 cocok dengan kata2, case-blind b = “Raiders”.equals(“Raiders”);//true b = “Raiders”.equals(“raiders”);//false b = “Raiders”.equalsIgnoreCase(“raiders”);//true if(team.equalsIgnoreCase(“raiders”))
System.out.println(“Go You “ + team);
Tuesday, 24 April 12
Methods — Comparisons int diff = kata1.compareTo(kata2); returns the “difference” kata1 - kata2 int diff = kata1.compareToIgnoreCase(kata2); returns the “difference” kata1 - kata2, case-blind Biasanya programer tidak peduli dengan perbedaan numeric antara kata1 - kata2, yang diperhatikan biasanya nilai negative, positive atau nol. Sering digunakan untuk condisional
if(kata1.compareTo(kata2) > 0){ //kata1 setelah kata2… } Tuesday, 24 April 12
Contoh Comparison //negative differences diff = “apple”.compareTo(“berry”);//a before b diff = “Zebra”.compareTo(“apple”);//Z before a diff = “dig”.compareTo(“dug”);//i before u diff = “dig”.compareTo(“digs”);//dig is shorter //zero differences diff = “apple”.compareTo(“apple”);//equal diff = “dig”.compareToIgnoreCase(“DIG”);//equal //positive differences diff = “berry”.compareTo(“apple”);//b after a diff = “apple”.compareTo(“Apple”);//a after A diff = “BIT”.compareTo(“BIG”);//T after G diff = “huge”.compareTo(“hug”);//huge is longer Tuesday, 24 April 12
Methods — trim String kata2 = kata1.trim (); mengembalikan string baru dari kata1 dengan menghilangkan white space di awal dan di akhir, namun tidak yang di tengah
String kata1 = “ Hi Bob “; String kata2 = kata1.trim(); //kata2 is “Hi Bob” – tidak ada white space di awal atau akhir //kata1 tetap “ Hi Bob “ – dengan withe spaces
Tuesday, 24 April 12
Methods — replace String kata2 = kata1.replace(oldCh, newCh); returns a string baru dari kata1 dimana oldCh telah diganti dengan newCh String kata1 = “rare“; String kata2 = “rare“.replace(‘r’, ‘d’); //kata2 adalah “dade”, tapi kata1 tetap “rare“
Tuesday, 24 April 12
Methods — Changing Case String kata2 = kata1.toUpperCase(); String kata3 = kata1.toLowerCase(); returns string baru dari kata1 dimana string yang baru sudah diubah jadi huruf kecil semua atau huruf besar semua. String kata1 = “HeLLo“; String kata2 = kata1.toUpperCase();//”HELLO” String kata3 = kata1.toLowerCase();//”hello” //kata1 tetap “HeLLo“
Tuesday, 24 April 12
Replacements
Contoh: untuk “mengubah” kata1 menjadi huruf besar, maka lakukan hal berikut ini: kata1 = kata1.toUpperCase();
Kesalahan umum: kata1.toUpperCase();
Tuesday, 24 April 12
kata1 tidak berubah
Numbers ke Strings Cara mengubah angka ke string 1. String s = "" + num; s = “” + 123;//”123”
2. String s = Integer.toString (i); String s = Double.toString (d); s = Integer.toString(123);//”123” s = Double.toString(3.14); //”3.14”
Integer dan Double adalah “wrapper” classes dari java.lang yg merepresentasikan angka sebagai object. Class ini juga memiliki metode statistik
3. String s = String.valueOf (num); s = String.valueOf(123);//”123”
Tuesday, 24 April 12
StringBuffer
StringBuffer itu seperti String tapi bisa dimodifikasi Panjang dan isi data di StringBuffer bisa dimodifikasi dengan pemanggilan method StringBuffer memiliki 3 constructor:
Tuesday, 24 April 12
StringBuffer() StringBuffer(int size) StringBuffer(String str)
25
Operasi di StringBuffer
Prinsip operasi pada StringBuffer adalah method append dan insert, dengan segala variasi input parameter Berikut adalah beberapa append method: StringBuffer append(String str) StringBuffer append(int num)
Method append berfungsi untuk menambahkan input data ke bagian akhir buffer 26
Tuesday, 24 April 12
Operasi di StringBuffer
Insert method berfungsi untuk menyelipkan suatu input di posisi tertentu Berikut adalah beberapa insert method: StringBuffer insert(int index, String str) StringBuffer insert(int index, char ch)
Index untuk menspesifikasikan posisi lokasi insert 27
Tuesday, 24 April 12
Operasi di StringBuffer
delete() - Menghapus serangkaian string dari posisi start ke posisi start-1 public StringBuffer delete(int start, int end)
28
Tuesday, 24 April 12
Operasi di StringBuffer
replace() - Mengganti substring di dalam StringBuffer dengan input String
public StringBuffer replace(int start, int end, String str)
substring() - Mengembalikan String dari posisi start public String substring(int start)
29
Tuesday, 24 April 12
Operasi di StringBuffer
reverse() - untuk membalik urutan karakter dari belakang ke depan public StringBuffer reverse()
length() - untuk mendapatkan total karakter di StringBuffer public int length()
30
Tuesday, 24 April 12
Operasi di StringBuffer
capacity() - mendapatkan kapasitas dari StringBuffer, public int capacity()
charAt() - untuk mendapatkan karakter di posisi tertentu public char charAt(int index)
31
Tuesday, 24 April 12
getChars() - Karakter pada posisi tertentu yang dimulai dan diakhiri pada posisi tsb, di-copy ke input array yang bertipe karakter di posisi tertentu public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) // nantinya hasil akan diinputkan ke dst dari // posisi dstBegin
setLength() - untuk mengeset panjang
Tuesday, 24 April 12
32
Review Questions: 1. 2. 3. 4. 5.
Tuesday, 24 April 12
The String class is part of what package? What does the String class have that other classes do not have? “Text enclosed in quotes is called ?” What is the returned value for “Rumplestiltskin”.length()? Define immutable objects.
Review (cont’d): 6.
7. 8. 9.
10.
Tuesday, 24 April 12
How does immutability of Strings make Java more efficient? How does immutability of Strings make Java less efficient? How do you declare an empty string? Why are String constructors not used very often? “Bob” + “ “ + “Smith” is called ____ ?
Review (cont’d): 11.
12. 13. 14. 15.
Tuesday, 24 April 12
String city = "Bloomington“; What is returned by city.charAt (2)? By city.substring(2, 4)? By city.lastIndexOf(‘o’)? By city.indexOf(3)? What does the trim method do?
Review (cont’d): 16. 17. 18. 19. 20.
Tuesday, 24 April 12
“sam”.equals(“Sam”) returns ? What kind of value does “sam”.compareTo(“Sam”) return? What will be stored in s? s = “mint”.replace(‘t’, ‘e’); What does s.toUpperCase() do to s? Name a simple way to convert a number into a string.