Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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.