Classe String :
représente une chaîne et fournit des méthodes de traitement de chaîne couramment utilisées en développement, telles que : trouver la longueur d'une chaîne, intercepter une chaîne, remplacer une chaîne, etc. Les chaînes sont des constantes, et leur Once a la valeur est créée, elle ne peut pas être modifiée.
Tout d'abord, vérifions les documents officiels pour voir quelles méthodes le responsable a définies pour la classe String : String appartient également au package java.lang, il n'est donc pas nécessaire de l'importer. Il est partiellement affiché ici. peut se référer au contenu complet :
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html
Plusieurs couramment utilisés méthodes:
charAt(int index):
Saisissez l'indice de caractère, interceptez le caractère et la valeur de retour est de type char :
String str = "hello world"; char a = str.charAt(0); System.out.println(a);
//Sortie : h
compareTo(String anotherString) : Comparez les deux chaînes pour correspondre en premier au caractère dont l'indice correspond à un caractère différent, renvoie la différence en code ASCII, n'ignore pas la casse, renvoie le type de chaîne :
String str = "hello world"; int a = str.compareTo("Aello world"); System.out.println(a);
//Comparez h et A, sortie 39
compareToIgnoreCase(String str ) : Comparez deux chaînes dans l'ordre du dictionnaire, en ignorant la taille. Écrivez, retournez le type de chaîne :
String str = "hello world"; int a = str.compareToIgnoreCase("Aello world"); System.out.println(a);
//Comparez h avec A, sortie 7
concat(String str) : Concaténez la chaîne :
String str = "hello world"; String a = str.concat("abc"); System.out.println(a);
//Sortie : hello worldabc
Cette méthode est utilisée pour déterminer si une certaine chaîne est incluse dans la chaîne cible, renvoie une valeur booléenne :
String str = "hello world"; boolean a = str.contains("e"); //传入需要判断的值 System.out.println(a)
//Sortie : true
boolean a = str.contains("a"); //判断a System.out.println(a);
//Sortie false
endsWith( Suffixe de chaîne) : Déterminez si elle se termine par le spécifié (peut être jugé par le suffixe de courrier électronique de l'utilisateur) Valeur booléenne de retour :
String str = "1234567489@qq.com"; boolean a = str.endsWith("@qq.com"); //需要判断的内容 System.out.println(a);
//Sortie : true
startsWith (Préfixe de chaîne) : Déterminez si la chaîne commence par le spécifié préfixe : (Jugement du site Web) Renvoie la valeur booléenne :
String str = "www.baidu.com"; boolean a = str.startsWith("www"); System.out.println(a);
// Sortie : true
equals (Object anObject) : Comparez la chaîne avec la chaîne spécifiée pour voir si elles sont égales, sensibles à la casse, renvoyez la valeur booléenne :
String str = "www.baidu.com"; boolean a = str.equals("Www.baidu.com"); //第一个w改为大写W System.out.println(a);
//Sortie : false
//S'ils sont identiques, affiche true
equalsIgnoreCase(String anotherString) : Comparez la chaîne avec la chaîne spécifiée pour l'égalité, insensible à la casse, renvoie la valeur booléenne :
String str = "www.baidu.com"; boolean a = str.equalsIgnoreCase("Www.Baidu.com"); //第一个w改为大写W System.out.println(a); //不区分大小写后,即使一个或多个字符改为大写,也不影响判断
//Output true
indexOf(String str) : renvoie l'index où la valeur spécifiée est trouvée pour la première fois dans la chaîne, renvoie le type int :
String str = "www.baidu.com"; int a = str.indexOf("a"); //判断a System.out.println(a);
//Sortie : 5
lastIndexOf(String str) : Renvoie l'index où la valeur spécifiée a été trouvée pour la dernière fois dans la chaîne, renvoie le type int :
String str = "www.baidu.com"; int a = str.indexOf("a"); //判断a,因为这个字符串只有一个a,所以还是5 System.out.println(a);
//Sortie : 5
length() : Renvoie la longueur de la chaîne, type int :
String str = "www.baidu.com"; int a = str.length(); System.out.println(a);
//Sortie : 13
toLowerCase() : Convertit la chaîne en lettres minuscules, si elle est à l'origine en minuscules, elle ne sera pas modifiée et le type de chaîne sera renvoyé :
String str = "www.BAIDU.com"; String a = str.toLowerCase(); System.out.println(a);
//Sortie : www.baidu.com
toUpperCase() : Convertit la chaîne en lettres majuscules :
String str = "WWW.BAIDU.COM"; String a = str.toLowerCase(); System.out.println(a);
//Sortie : WWW.BAIDU.COM
trim() : Supprime les espaces aux deux extrémités de la chaîne :
String str = " www.baidu.com "; //在前后端输出多个空格 String a = str.trim(); System.out.println(a);
//Sortie : www .baidu.com
String substring(int beginIndex,int endIndex) : Intercepter la chaîne (l'index contient beginIndex, n'inclut pas endIndex) :
String str = "www.baidu.com"; String a = str.substring(0,6); //截取下标0开始,6结束(不包含下标为6的字符) System.out.println(a);
//Sortie : www.ba
String Il existe de nombreuses méthodes , qui ne sont pas répertoriés ici. Vous pouvez vous référer à la documentation officielle du site Web pour l'utiliser
Un caractère La longueur d'un objet chaîne ne peut pas être modifiée, et son contenu ne peut pas être modifié ni de nouveaux caractères ajoutés. En fait, parfois cela ne peut pas répondre aux besoins de l'entreprise, et il arrive toujours que la chaîne doive être modifiée. Java fournit donc deux types de tampons de chaîne de chaîne variable, StringBuffer et StringBuilder.
Lisez d'abord l'introduction officielle :
En termes simples, StringBuffer est une séquence variable de caractères. La longueur et le contenu de la colonne peuvent être modifiés en appelant certaines méthodes. suit, plus précisément Vous pouvez vous référer à :
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/StringBuffer.html
Le fonctionnaire Utilisation de la méthode append Le formulaire de téléchargement répond aux besoins de différentes logiques métier. Pour utiliser StringBuffer, vous devez d'abord créer un objet, car c'est une classe
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); } }
//Sortie : bonjour tout le mondebonjour tout le monde
//Ceci termine la modification de la chaîne
L'utilisation de StringBuilder est la même :
String str = "hello world"; StringBuilder s = new StringBuilder(str);
Ensuite Quelle est la différence entre String, StringBuilder et StringBuffer ?
Variabilité : String est une séquence de caractères immuable, Builder et Buffer sont des séquences de caractères variables
安全性: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()是方法!!
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!