如何在Java中初始化和比较字符串()

用Java初始化字符串
1. 直接初始化(字符串常量):在这个方法中,一个字符串常量对象将在内存中的堆区域内的字符串池区域中创建。由于它是一个常量,我们不能修改它,即String类是不可变的。
例子:

String str = "srcmini"; str = "geeks"; //This statement will make str //point to new String constant("geeks") //rather than modifying the previous //String constant.

字符串str =” srcmini” ;
如何在Java中初始化和比较字符串()

文章图片
str =” geeks” ;
如何在Java中初始化和比较字符串()

文章图片
注意:
如果我们再写一次
str =” srcmini”
作为下一行, 那么它首先检查给定的String常量是否存在于String池区中。如果存在, 则str指向它, 否则创建一个新的String常量。
2.对象初始化(动态)
:在此方法中, 将在堆区域中创建一个String对象(而不是大写形式在String池区域中)。我们无法对其进行修改(例如大写)。同样具有相同值的String常量也会在String池区域中创建, 但是该变量将仅指向堆区域中的String对象。
例子:
String str = new String("very"); str = "good";

字符串str =新字符串(“ 非常” )
如何在Java中初始化和比较字符串()

文章图片
str =” 好”
现在这是一个直接分配, 因此在String池区中将创建一个值为” good” 的String常量, 并且str将指向该常量。
如何在Java中初始化和比较字符串()

文章图片
注意:如果我们再次写入str = new String(” very “ ),那么它将创建一个值为” very “ 的新对象,而不是用相同的值指向堆区域中的可用对象。但是如果我们写入str = ” very “ ,那么它将指向值为” very “ 的字符串常量对象,存在于字符串池区域中。
比较字符串及其引用
1. equals()方法:用于比较字符串的值是否相等。返回类型为布尔型。在几乎所有的情况下,你都可以使用useObjects.equals()。
2. ==操作符:它比较的是引用而不是值。返回类型为布尔型。==是在极少数情况下使用的,当你知道你正在处理的是内部字符串。
3. ccompareTo()方法:它按字典顺序比较值,并返回一个整数值,用于描述第一个字符串是否小于、等于或大于第二个字符串。例如,如果str1和str2是两个字符串变量,那么if
str1 == str2:返回0
str1> str2:返回正值
str1 < str2:返回负值
注意:compare方法返回的正数和负数是两个字符串中第一个未匹配字符的差值。
Java
//Java program to show how to compare Strings public class Test { public static void main(String[] args) { String s1 = "Ram" ; String s2 = "Ram" ; String s3 = new String( "Ram" ); String s4 = new String( "Ram" ); String s5 = "Shyam" ; String nulls1 = null ; String nulls2 = null ; System.out.println( " Comparing strings with equals:" ); System.out.println(s1.equals(s2)); System.out.println(s1.equals(s3)); System.out.println(s1.equals(s5)); //System.out.println(nulls1.equals(nulls2)); //NullPointerException System.out.println( " Comparing strings with ==:" ); System.out.println(s1 == s2); System.out.println(s1 == s3); System.out.println(s3 == s4); System.out.println(nulls1 == nulls2); System.out.println( " Comparing strings with compareto:" ); System.out.println(s1.compareTo(s3)); System.out.println(s1.compareTo(s5)); //System.out.println(nulls1.compareTo(nulls2)); //NullPointerException } }

【如何在Java中初始化和比较字符串()】输出如下:
Comparing strings with equals: true true false Comparing strings with ==: true false false true Comparing strings with compareto: 0 -1

    推荐阅读