Kelas rentetan:
mewakili rentetan dan menyediakan kaedah pemprosesan rentetan biasa dalam pembangunan, seperti: mencari panjang rentetan, memintas rentetan dan menggantikan rentetan Dalam kaedah lain, rentetan adalah pemalar, dan nilainya tidak boleh diubah suai selepas ia dicipta.
Pertama sekali, mari kita semak dokumentasi rasmi untuk melihat kaedah yang ditetapkan oleh pegawai untuk kelas String: String juga tergolong dalam pakej java.lang, jadi tidak perlu mengimportnya. Berikut ialah a paparan separa. Anda boleh merujuk kepada kandungan penuh:
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html
Beberapa kaedah yang biasa digunakan:
charAt(int index):
Masukkan subskrip aksara, memintas aksara dan pulangan nilai ialah jenis char:
String str = "hello world"; char a = str.charAt(0); System.out.println(a);
//Output: h
compareTo(String anotherString): Bandingkan dua rentetan yang pertama sepadan dengan aksara yang sepadan dengan subskrip dengan berbeza aksara, kembalikan perbezaan dalam kod ASCII dan jangan abaikan kes , kembalikan jenis String:
String str = "hello world"; int a = str.compareTo("Aello world"); System.out.println(a);
//j berbanding dengan A, output 39
compareToIgnoreCase(String str): Bandingkan dua rentetan dalam susunan kamus, abaikan saiz Tulis, kembalikan Jenis rentetan:
String str = "hello world"; int a = str.compareToIgnoreCase("Aello world"); System.out.println(a);
//Bandingkan h dengan A, keluaran 7
concat(String str): Rentetan bercantum:
String str = "hello world"; String a = str.concat("abc"); System.out.println(a);
//Output: hello worldabc
Kaedah ini digunakan untuk mencari sama ada rentetan tertentu dimasukkan dalam rentetan sasaran dan mengembalikan a Nilai Boolean:
String str = "hello world"; boolean a = str.contains("e"); //传入需要判断的值 System.out.println(a)
//Output: true
boolean a = str.contains("a"); //判断a System.out.println(a);
//Output false
endsWith(String suffix): Tentukan sama ada ia berakhir dengan yang ditentukan (boleh dinilai oleh akhiran e-mel pengguna) Kembalikan nilai Boolean:
String str = "1234567489@qq.com"; boolean a = str.endsWith("@qq.com"); //需要判断的内容 System.out.println(a);
//Output: true
startsWith(String prefix ): Tentukan sama ada rentetan bermula dengan awalan yang ditentukan: (penghakiman URL) Kembalikan Nilai Boolean:
String str = "www.baidu.com"; boolean a = str.startsWith("www"); System.out.println(a);
//Output: true
sama dengan(Objek anObject): Bandingkan rentetan dengan rentetan yang ditentukan untuk kesamaan, sensitif huruf besar, pulangan Nilai Boolean:
String str = "www.baidu.com"; boolean a = str.equals("Www.baidu.com"); //第一个w改为大写W System.out.println(a);
//Output: false
//Jika kedua-duanya adalah sama, output benar
equalsIgnoreCase(String anotherString): Tukar rentetan kepada yang ditentukan Sama ada perbandingan rentetan adalah sama, tidak peka huruf besar-besaran, mengembalikan nilai Boolean:
String str = "www.baidu.com"; boolean a = str.equalsIgnoreCase("Www.Baidu.com"); //第一个w改为大写W System.out.println(a); //不区分大小写后,即使一个或多个字符改为大写,也不影响判断
//Output benar
indexOf(String str): Mengembalikan indeks dalam rentetan Indeks nilai yang ditentukan ditemui sekali, dan jenis int dikembalikan:
String str = "www.baidu.com"; int a = str.indexOf("a"); //判断a System.out.println(a);
//Output: 5
lastIndexOf(String str): Mengembalikan kali terakhir ditemui dalam rentetan Indeks nilai yang ditentukan, kembalikan jenis int:
String str = "www.baidu.com"; int a = str.indexOf("a"); //判断a,因为这个字符串只有一个a,所以还是5 System.out.println(a);
//Output: 5
length(): Kembalikan panjang rentetan, jenis int:
String str = "www.baidu.com"; int a = str.length(); System.out.println(a);
//Output: 13
keLowerCase(): Tukar rentetan kepada huruf kecil huruf. Jika asalnya huruf kecil, ia tidak akan ditukar dan jenis String akan dikembalikan:
String str = "www.BAIDU.com"; String a = str.toLowerCase(); System.out.println(a);
//Output: www.baidu.com
kepadaUpperCase (): Tukar rentetan kepada huruf besar:
String str = "www.BAIDU.com"; String a = str.toLowerCase(); System.out.println(a);
//Output: WWW
trim(): Alih keluar tempat kosong di kedua-dua hujung bahagian. rentetan:
String str = " www.baidu.com "; //在前后端输出多个空格 String a = str.trim(); System.out.println(a);
//Output: www.baidu.com
Subrentetan rentetan(int beginIndex,int endIndex): Rentetan pintasan (indeks termasuk beginIndex, tidak termasuk endIndex):
String str = "www.baidu.com"; String a = str.substring(0,6); //截取下标0开始,6结束(不包含下标为6的字符) System.out.println(a);
//Output: www.ba
Terdapat banyak kaedah String, jadi saya tidak akan menyenaraikan semuanya di sini dokumentasi tapak web rasmi untuk menggunakannya
Panjang objek rentetan tidak boleh diubah dan kandungannya tidak boleh diubah suai atau ditambah aksara. Malah, kadangkala ini tidak dapat memenuhi keperluan perniagaan, dan selalu ada masa apabila rentetan itu perlu ditukar, jadi Java menyediakan dua jenis penimbal rentetan boleh ubah, StringBuffer dan StringBuilder.
Pertama lihat pengenalan rasmi:
Ringkasnya, StringBuffer ialah jujukan aksara yang berubah-ubah, panjang lajur dan kandungan boleh diubah dengan memanggil kaedah tertentu Beberapa kaedah StringBuffer adalah seperti berikut. 17/docs/api/java .base/java/lang/StringBuffer.html
Secara rasminya, kaedah penambahan dibebankan untuk memenuhi keperluan logik perniagaan yang berbeza. Untuk menggunakan StringBuffer, anda mesti mencipta objek terlebih dahulu, kerana ia adalah kelas
public class StringBuffertest { public static void main(String[] args) { String str = "hello world"; StringBuffer s = new StringBuffer(str); //创建StringBuffer类,这个和普通类创建方法是一样的 s.append("hello world"); //使用StringBuffer的append方法 System.out.println(s); } }
//Output: hello worldhello world
//Ini melengkapkan pengubahsuaian rentetan
StringBuilder The penggunaan adalah sama:
String str = "hello world"; StringBuilder s = new StringBuilder(str);
Jadi apakah perbezaan antara String, StringBuilder dan StringBuffer?
安全性:String是线程安全的,StringBuilder是线程不安全的,StringBuffer是线程安全。StringBuidler效率高于StringBuffer。因为String是不可变的一般情况下,效率最低。
使用场景:如果字符串创建后基本上不需要更改,使用String类型,如果需要更改操作较多使用StringBuilder,如果要求线程安全使用StringBuffer。
StringBuffer和StringBuilder类的好处:
对象能够被多次的修改,并且不产生新的未使用对象
String类总结:
String有哪些特性:
不变性:String 是只读字符串,是一个典型的 immutable 对象,对它进行任何操作,其实都是创 建一个新的对象,再把引用指向该对象。不变模式的主要作用是确保在对象需要被多个线程频繁访问和共享时,数据的一致性不会被破坏。
常量池优化:String 对象创建之后,会在字符串常量池中进行缓存,如果下次创建同样的对象时, 会直接返回缓存的引用。
final:使用 final 来定义 String 类,表示 String 类不能被继承,提高了系统的安全性。
小扩展:什么是字符串常量池?
字符串常量池位于堆内存中,专门用来存储字符串常量,可以提高内存的使用率,避免开辟多块空间存储相同的字符串,在创建字符串时 JVM 会首先检查字符串常量池,如果该字符串已经存在池中,则返回它的引用,如果不存在,则实例化一个字符串放到池中,并返回其引用。
字符型常量(char)和字符串常量(String)的区别:
形式上:字符常量是单引号引起的一个字符 字符串常量是双引号引起的若干个字符
含义上:字符常量相当于一个整形值(ASCII值),可以参加表达式运算,字符串常量代表一个地址值(该字符串在内存中存放位置)
占内存大小:字符常量只占一个字节 字符串常量占若干个字节(至少一个字符结束标志)
特别注意: 我们知道数组也有 length(),用来判断该数组长度:
int [] a = {1,2,3,4,5}; system.out.println(a.length);
//输出:5
但是千万要注意:
数组中length()是属性,String中length()是方法!! 数组中length()是属性,String中length()是方法!! 数组中length()是属性,String中length()是方法!!
Atas ialah kandungan terperinci Apakah kaedah penggunaan kelas String di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!