Download The String Class

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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.