Dalam bahasa lain seperti C/C++ dan Pascal (Delphi), string
merupakan array karakter.
Dalam Java, string adalah object dan bukan array karakter.
▪
Dapat dibuat array karakter, tetapi ia bukan string.
String terdiri dari sederetan karakter yang dibatasi oleh
char inputKey;
char ampersand = '&';
//
tipe primitif char.
String perancangJava = "James Gosling";
String strAmpersand = "&";
//
tipe object String.
Perhatikan tanda kutip tunggal dan kutip ganda yang
membedakan karakter dan string.
Perintah Keterangan
concat(str) : mengabungkan 2 buah string string.
isEmpty() : memeriksa apakah string kosong atau tidak.
trim() : membuang spasi di sebelah kiri dan kanan string.
length() : menghitung banyak karakter dalam string.
equals(str) : membandingkan 2 buah string.
substring(<awal>, <akhir>) : mengambil substring dari string.
charAt(<index>) : mengambil karakter yang ada pada index.
lastIndexOf(kar) : mencari index terakhir dari string yang mengandung karakter kar.
equalsIgnoreCase(str) : membandingkan string dengan str, tidak membedakan huruf besar dan kecil
copyValueOf(arr_char) : membentuk string dari array karakter
Untuk menampilkan string dalam program Java non-GUI (teks),
kita dapat memakai perintah
System.out.println()
ataupun
class TampilString {
public static void main(String [] args) { System.out.print("Perancang C: ");
System.out.print("Brian Kernighan dan Dennis Ritchie."); System.out.println(); // berganti baris
System.out.println("Perancang Java: "); System.out.println(" James Gosling."); }
}
Perhatikan perbedaan antara print() dan println(). Output program (ditampilkan string sebagai berikut):
Perancang C++: Brian Kernighan dan Dennis Ritchie. Perancang Java:
Object String akan mengenali operator penggabungan string (concat) berupa tanda (+).
Contoh:
String s1 = "Java Micro - ";
String s2 = s1 + "Java Enterprise"; System.out.println(s2);
Dengan operator new, dapat juga membuat object String dari array karakter.
Contoh:
char chArray[] = {'J', 'B', 'u', 'i', 'l', 'd', 'e', 'r', '9'};
String s1 = new String(chArray); // s1 = "JBuilder 9"
Akan menampilkan string: Java Micro - Java Enterprise
Selain untuk menjumlahkan tipe variable String dengan String, operator + juga dapat dipakai untuk menjumlahkan tipe variable String dengan tipe lainnya:
String dengan boolean,
String dengan integer (byte, short, int, long, char), String dengan floating-point (float, double),
class Concat {
public static void main(String []args) {
boolean bool = true;
long intg = 4567890;
double flot = 45678.9123e-11;
Concat objt1 = null;
Concat objt2 = new Concat( );
System.out.println("Concatenation:" +
"\nString + boolean: " + false + " - " + bool +
"\nString + integer: " + 123 + " ~ " + intg +
"\nString + float : " + 3.14 + " ~ " + flot +
"\nString + object : " + objt1 + " ~ " + objt2);
}}
Sebuah object String dapat dibuat dengan memakai operator new.
Contoh:
String s1 = "JBuilder 9.";
String s2 = new String("JBuilder 9.");
Kedua variable s1 dan s2 akan sama-sama merupakan object String yang berisikan teks: JBuilder 9.
Dengan operator new, dapat juga membuat object String dari array
karakter. Contoh:
char chArray[] = {'J', 'B', 'u', 'i', 'l', 'd', 'e', 'r', '9'};
Dapat juga memilih sub-array dari array karakter untuk dikonversi menjadi object String.
Bentuk umumnya adalah sebagai berikut:
String [nama var] = new String( char[ ] chArray, int offset, int count ) Di mana :
chArray merupakan array karakter,
offset merupakan index awal dari sub-array,
Contoh:
char chAr[] = {'J', 'B', 'u', 'i', 'l', 'd', 'e', 'r', ' ', '9'}; String s1 = new String(chAr, 1, 5); //s1 = "Build
Index array maupun String dimulai dari angka 0 (zero-based index). Dengan offset = 1, maka karakter awalnya adalah 'B' (index 1).
Dengan count = 5, akan diambil sebanyak 5 karakter mulai dari 'B'. Sub-array yang diambil adalah: 'Build'.
Dalam Java, variable dengan tipe String merupakan sebuah object dari class String.
Ketika dideklarasikan sebuah string, maka secara otomatis, compiler Java akan membuatkan sebuah object String.
Dalam JDK, class String disimpan dalam package java.lang. Jadi full-name bagi class ini adalah: java.lang.String.
Sebagai sebuah class, String mempunyai beberapa member berupa method. Berikut beberapa method penting :
Panjang String: length( )
Mengambil Sub-string: substring( )
Mengambil Karakter: charAt( )
Mengambil Index: indexOf( )
Method length() dipakai untuk mengambil panjang dari variable String. Contoh:
String s1 = "JBuilder 9.";
int lenStr = s1.length(); // lenStr = 11 System.out.println(lenStr); // 11
Method substring() dipakai untuk mengambil sub-string dari sebuah object String.
Ada dua bentuk dari method ini :
Bentuk pertama (overload method):
String substring(int beginIndex, int endIndex); String substring(int beginIndex);
Bentuk tersebut mengambil sub-string dimulai dari posisi beginIndex sampai posisi endIndex-1.
Bentuk kedua.
// posisi: "01234567890" String s1 = "JBuilder 9.";
String cutStr = s1.substring(5); // cutStr = "der 9." String subStr = s1.substring(1, 6); // subStr = "Build”
Bentuk tersebut mengambil sub-string dimulai dari posisi beginIndex sampai akhir string
//Use substring()
class SubStr {
public static void main (String args[]) {
String orgstr = "Java Makes the Web move";
//construct a substring
String substr = orgstr.substring(5, 18);
System.out.println("orgstr : " + orgstr);
System.out.println("substr : " + substr);
} }
Output :
orgstr : Java Makes the Web move
substr : Makes the Web
Method
charAt()
dipakai untuk mengambil karakter dari object
String pada posisi index tertentu.
Contoh:
// posisi: "01234567890"
String s1 = "JBuilder 9.";
char c1 = s1.charAt(1);
// c1 = 'B'
char c2 = s1.charAt(9);
// c2 = '9'
Method indexOf() dipakai untuk mengambil nilai index berupa posisi
karakter tertentu di dalam object String. Posisi karakter yang dicari adalah posisi dari karakter pertama yang ditemui.
Contoh:
// posisi: "0123456789012345678" String s1 = "JBuilder untuk Java";
int pos1 = s1.indexOf('u'); // pos1 = 2 int pos2 = s1.indexOf('t'); // pos2 = 11 int pos3 = s1.indexOf('J'); // pos3 = 0
Nilai index yang dikembalikan adalah index dari karakter pertama yang ditemui.
Misalnya ada 3 buah karakter 'u' dalam s1, tetapi yang dikembalikan adalah posisi dari karakter 'u' yang pertama (yaitu 2).
Method
toUpperCase()
atau
toLowerCase()
dipakai untuk
konversi semua karakter didalam object String menjadi huruf
besar atau huruf kecil.
String toUpperCase();
String toLowerCase();
Contoh:
String s1 = "JBuilder untuk Java\u2122";
String sUp = s1.toUpperCase();
// = JBUILDER UNTUK JAVA
TMclass StrOps {
public static void main (String args[]) {
String str1 = "When it comes to web programming, Java is #1."; String str2 = new String (str1);
String str3 = "Java string are powerful."; int result, idx;
char ch;
System.out.println("Length of str1 : " + str1.length());
//display str1, one char at time
for (int i=0; i<str1.length(); i++)
System.out.print(str1.charAt(i)); System.out.println();
if (str1.equals(str2)) System.out.println("str1 == str2"); else System.out.println("str1 != str2"); if (str1.equals(str3)) System.out.println("str1 == str3"); else System.out.println("str1 != str3"); result = str1.compareTo(str3); if (result == 0)
System.out.println("str1 and str3 are equal"); else if (result < 0)
System.out.println("str1 is less than str3"); else
System.out.println("str1 is greater than str3"); //assign a new string to str2
str2 = "One Two Three One"; idx = str2.indexOf("One");
System.out. println("index of first occurrence of One : " +idx);; idx = str2.lastIndexOf("One");
System.out. println("index of first occurrence of One : " +idx);; } }
Output :
Length of str1 : 45
When it comes to web programming,Java is #1.
str1 == str2
str1 != str3
str1 is greater than str3
index of first occurrence of One : 0
index of first occurrence of One : 14
//Demonstrate String Array class StringArrays {
public static void main (String args[]) {
String str []= { "This", "is", "a", "test"}; System.out.println("Original Array : "); for (int i=0;i < str.length;i++)
System.out.print(str[i] + " "); System.out.println("\n"); //change a string
str[1] = "was";
str[3] = "test, tool";
System.out.println ("Modified Array : "); for (int i=0;i < str.length;i++)
System.out.print(str[i] + " "); System.out.println("\n"); } }
Output :
Original Array : This is a test Modified Array : This was a test, tool
//Some string operation
class StrOperation {
public static void main (String args[]) {
String str1 = "Now is the time for all good men "+ "to come to the aid of their country.";
System.out.println("Length of str1 : " + str1.length()); System.out. println("indexof (t) : " + str1.indexOf('t'));
System.out. println("lastindexof (t) : " + str1.lastIndexOf ('t')); System.out. println("indexof (the) : " + str1.indexOf("the"));
//menggabungkan string str1 = "Belajar"; String str2 = " Bahasa"; String str3 = " Java"; String str4 = str1 + str2 + str3; System.out.println("Hasil str4 = "+ str4);
System.out.println("Belajar".concat(" Bahasa").concat(" Java"));
//replace karakter
System.out.println("Hello".replace('l', 'w'));
//toLower & toUpper
System.out.println("HeLLo".toLowerCase()); System.out.println("HeLLo".toUpperCase());
//Trim => menghilangkan bagian kosong didepan dan belakang
System.out.println(" Hello World ".trim()); } }
Output: length of str1 : 69 indexof (t) ; 7 lastindexof (t) : 65 indexof (the) : 7 lastindexof (the) : 55
Hasil str4 = Balajar Bahasa Java Belajar Bahasa Java
Hewwo hello HELLO Hello World
//Some string operation
class StrBuffer {
public static void main (String args[]) {
StringBuffer str = new StringBuffer ("Hello World"); System.out.println("buffer before = " + str);
System.out.println("charAt(1) before = " + str.charAt(1)); str.setCharAt(1, 'i');
str.setLength(2);
System.out.println("buffer after = " + str);
//Append
StringBuffer str1 = new StringBuffer (40); int a = 2;
String S = str1.append("Hello ").append(a).append("-IA..!!!").toString();; System.out.println(S);
//Insert
StringBuffer str2 = new StringBuffer ("Hello World"); str2.insert(6, "there ");
System.out.println(str2); } }
Output :
buffer before = Hello World charAt(1) before = e
buffer after = Hi charAt(1) after = i Hello 2-IA..!!!