Java字符串详解的实例介绍
1.创建对象
对于java程序中的字符串直接常量,JVM会使用一个字符串池来保存它们。当第一次使用某个字符串直接常量时,JVM会将它放入字符串池中进行缓存。在一般情况下,字符串池中的字符串对象不会被垃圾回收。当程序再次需要使用该字符串时,无需重新创建一个新的字符串就可以直接让引用变量直接指向字符串中已有的字符串。而使用new操作创建的字符串对象不指向字符串池中的对象,但是可以使用intern()方法使其指向字符串池中的对象。
public class StringDemo1 { public static void main(String[] args){ String str1 ="abc"; String str2 ="abc"; String str3 =new String("abc"); System.out.println(str1==str2);//true System.out.println(str1==str3);//false } }
常见问题
String str3 =new String("abc");
创建了几个对象?
答:两个
String str ="ab"+"cd";
创建了几个对象?
答:一个。"ab"和"cd"都是常量被放在字符串池中。因此只创建了一个abcd字符串池中并将字符串abcd保存在字符串池中。
public class StringDemo1 { public static void main(String[] args){ String str1 ="ab"; String str2 ="cd"; String str3 ="ab"+"cd";//创建对象并加入字符串池 String str4 =str1+str2; String str5 =str1+"cd"; System.out.println(str3==str4);//false System.out.println(str3==str5);//false } }
由上面代码可知:只有引号包含文本的方式才创建的String对象才能被添加到字符串池中,对于包含new方法新建对象的”+“连接表达式他所产生的新对象不会被加到字符串池中。
但是有一种情况需要引起我们的注意:
public class StringDemo1 { private final static String str1 ="ab"; private final static String str2 ="cd"; public static void main(String[] args){ String str3 ="ab"+"cd";//创建对象并加入字符串池 String str4 =str1+str2; String str5 =str1+"cd"; System.out.println(str3==str4);//true System.out.println(str3==str5);//true } }
这又是为什么呢?原因是这样的,对于常量来讲。它的值是固定的,因此在编译期间就能被确定了。
将上面的代码稍加改变看看会出现什么情况。
public class StringDemo1 { private final static String str1 ; private final static String str2; static{ str1="ab"; str2="cd"; } public static void main(String[] args){ String str3 ="ab"+"cd";//创建对象并加入字符串池 String str4 =str1+str2; String str5 =str1+"cd"; System.out.println(str3==str4);//false System.out.println(str3==str5);//false } }
str1和str2虽然被定义为常量,但是她们美誉马上赋值,在运算出s的值前,她们何时被赋值,以及被赋什么值都是变数,因此性质和变量一样。只能在运行时被创建。
2.字符串方法
获取方法
•int length()
•char charAt(int index)根据位置获取某个字符
•int indexOf(int ch) 返回的是ch在字符串中第一次出现的位置
•int indexOf(int ch,int fromIndex)从fromIndex指定位置开始,获取ch在字符串中第一次出现的位置
•int indexOf(String str)
•int indexOf(String str,int fromIndex)
•int lastIndexOf(int ch)
判断方法
•boolean contains(String str) 另一种判断方法:if(str.index(str)!=-1)
•boolean startsWith(String str)
•boolean endsWith(String str)
•bolean isEmpty(String str)
•boolean equals(String str)
•boolean equalsIgnoreCase(String str);
转换方法
•将字符数组转换为字符串
构造函数
1.String(char[] chs)
2.String(char[] chs,offset,count)将字符数组中的一部分转成字符串。
静态方法
1.static String copyValueOf(char[] chs)
2.static String copyValueOf(char[] chs,int offset,int count)
3.static String valueOf(char[] )
4.static String valueOf(char[] chs,int offset,int count)
•将字符串转换成字符数组
char[] toCharArray
•将字符数组转换成字符串
•将字符串转换成字节数组
byte[] toBytes
替换方法
String replace(olderStr,newStr)
切割方法
String split(regex)
获取子串[编辑分类]
String subString(begin)
String subString(begin,end)包含头不包含尾
将字符串转换成大小写Android(10)
String toUpperCase()
String toLowerCase()
将字符串两端的空格去除
String trim()
对两个字符串进行自然顺序的比较
int compareTo(String str)
3.String 练习
1.字符串翻转
public class StringDemo2 { public static void main(String[] args){ String str = "avdkfasjks"; reverseMethod_1(str); } public static void reverseMethod_1(String str){ for(int i=str.length();i>0;i--){ System.out.print(str.charAt(i-1)); } } }
2.获取最大相同子串
public class StringDemo2 { public static void main(String[] args){ String str1 = "avdkfasjks"; String str2 = "ewavdrtte"; System.out.println(commonMaxSubstring(str1, str2)); } public static String commonMaxSubstring(String str1,String str2){ int len = str1.length(); String str3 = null; outer: //i为子串的长度 for(int i = len;i>0;i--){ //j为子串的脚标 for(int j=0;j<len-i+1;j++){ str3=str1.substring(j,j+i); if(str2.contains(str3)) break outer; } } return str3; } }
以上就是Java字符串详解的实例介绍的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4
