1. Buat objek
Untuk konstanta string langsung dalam program Java, JVM akan menggunakan kumpulan string untuk menyimpannya. Ketika konstanta string langsung digunakan untuk pertama kalinya, JVM akan memasukkannya ke dalam kumpulan string untuk di-cache. Dalam keadaan normal, objek string di kumpulan string tidak akan dikumpulkan sampahnya. Ketika program perlu menggunakan string lagi, variabel referensi dapat langsung menunjuk ke string yang ada di string tersebut tanpa membuat ulang string baru. Objek string yang dibuat menggunakan operasi baru tidak menunjuk ke objek di kumpulan string , tetapi Anda dapat menggunakan metode intern() untuk mengarahkannya ke objek di kumpulan string.
Copy kode kodenya sebagai berikut:
kelas publik StringDemo1 {
public static void main(String[] args){
String str1="abc";
String str2 = "abc";
String str3 =String baru("abc");
Sistem.keluar.println(str1==str2);//benar
Sistem.keluar.println(str1==str3);//false
}
}
Pertanyaan Umum
Copy kode kodenya sebagai berikut:
String str3 =String baru("abc");
Berapa banyak objek yang dibuat?
Jawaban: Dua
Copy kode kodenya sebagai berikut:
String str = "ab"+"cd";
Berapa banyak objek yang dibuat? Jawaban: Satu. "ab" dan "cd" adalah konstanta yang ditempatkan di kumpulan string. Oleh karena itu, hanya satu kumpulan string abcd yang dibuat dan string abcd disimpan di kumpulan string.
Copy kode kodenya sebagai berikut:
kelas publik StringDemo1 {
public static void main(String[] args){
String str1 = "ab";
Tali str2="cd";
String str3 ="ab"+"cd";//Buat objek dan tambahkan ke kumpulan string
Tali str4 =str1+str2;
String str5 =str1+"cd";
Sistem.keluar.println(str3==str4);//false
Sistem.keluar.println(str3==str5);//false
}
}
Hal ini dapat dilihat dari kode di atas: Hanya objek String yang dibuat dengan tanda kutip berisi teks yang dapat ditambahkan ke kumpulan string. Untuk ekspresi koneksi "+" yang berisi objek baru yang dibuat dengan metode baru, objek baru yang dihasilkan olehnya akan tidak ditambahkan ke string di kolam.
Namun ada satu situasi yang perlu kita perhatikan:
Copy kode kodenya sebagai berikut:
kelas publik StringDemo1 {
string statis akhir pribadi str1 = "ab";
string statis akhir pribadi str2 = "cd";
public static void main(String[] args){
String str3 ="ab"+"cd";//Buat objek dan tambahkan ke kumpulan string
Tali str4 =str1+str2;
String str5 =str1+"cd";
Sistem.keluar.println(str3==str4);//benar
Sistem.keluar.println(str3==str5);//benar
}
}
Mengapa ini? Alasannya adalah ini, untuk konstanta. Nilainya tetap dan oleh karena itu dapat ditentukan pada waktu kompilasi.
Ubah sedikit kode di atas dan lihat apa yang terjadi.
Copy kode kodenya sebagai berikut:
kelas publik StringDemo1 {
String statis akhir pribadi str1;
String statis akhir pribadi str2;
statis{
str1="ab";
str2="cd";
}
public static void main(String[] args){
String str3 ="ab"+"cd";//Buat objek dan tambahkan ke kumpulan string
Tali str4 =str1+str2;
String str5 =str1+"cd";
Sistem.keluar.println(str3==str4);//false
Sistem.keluar.println(str3==str5);//false
}
}
Meskipun str1 dan str2 didefinisikan sebagai konstanta, keduanya diberi nilai segera sebelum nilai s dihitung, kapan ditetapkan dan berapa nilainya adalah variabel, sehingga propertinya sama dengan variabel. Hanya dapat dibuat saat runtime.
2. Metode string
Dapatkan metode
•int panjang()
•char charAt(int indeks) mendapat karakter berdasarkan posisi
•int indexOf(int ch) mengembalikan posisi kemunculan ch pertama dalam string
•int indexOf(int ch,int fromIndex) dimulai dari posisi yang ditentukan oleh fromIndex dan memperoleh posisi kemunculan ch pertama dalam string.
•int indeks(String str)
•int indeksDari(String str,int dariIndeks)
•int lastIndexOf(int ch)
Metode penilaian
•boolean berisi(String str) Metode penilaian lain: if(str.index(str)!=-1)
•boolean dimulaiDengan(String str)
•boolean berakhirDengan(String str)
•bolean isEmpty(String str)
•boolean sama dengan(String str)
•boolean sama denganIgnoreCase(String str);
Metode konversi
•Mengonversi array karakter menjadi string
Konstruktor
1.String(karakter[] chs)
2.String(char[] chs,offset,count) mengubah bagian array karakter menjadi string.
metode statis
1.String statis copyValueOf(char[] chs)
2.String statis copyValueOf(char[] chs,int offset,int count)
3. Nilai String Statis(char[])
4.String statis valueOf(char[] chs,int offset,int count)
• Mengonversi string menjadi array karakter
char[] keCharArray
•Mengonversi array karakter menjadi string
•Mengonversi string ke array byte
byte[] keByte
metode penggantian
Penggantian string (Str lama,Str baru)
Metode pemotongan
Pemisahan string (regex)
Dapatkan substring[edit kategori]
SubString string (mulai)
String subString (mulai, akhir) berisi kepala tetapi tidak berisi ekor
Ubah string menjadi huruf besar dan kecil Android (10)
String ke Huruf Besar()
String ke Huruf Kecil()
Hapus spasi dari kedua ujung string
Pemangkasan tali()
Bandingkan dua string dalam urutan alami
int bandingkanTo(String str)
3.Latihan tali
1. Pembalikan senar
Copy kode kodenya sebagai berikut:
kelas publik StringDemo2 {
public static void main(String[] args){
String str = "avdkfasjks";
reverseMethod_1(str);
}
public static void reverseMethod_1(String str){
for(int i=str.panjang();i>0;i--){
Sistem.keluar.cetak(str.charAt(i-1));
}
}
}
2. Dapatkan substring identik terbesar
Copy kode kodenya sebagai berikut:
kelas publik StringDemo2 {
public static void main(String[] args){
String str1 = "avdkfasjks";
String str2 = "ewavdrtte";
Sistem.keluar.println(commonMaxSubstring(str1, str2));
}
String statis publik commonMaxSubstring(String str1,String str2){
int len = str1.panjang();
String str3 = nol;
luar:
//i adalah panjang substring
untuk(int i = len;i>0;i--){
//j adalah substring dari substring
untuk(int j=0;j<len-i+1;j++){
str3=str1.substring(j,j+i);
if(str2.berisi(str3))
istirahat luar;
}
}
kembalikan str3;
}
}