如何在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”;

as

str =”geeks”;

as

注意:

如果我们再写一次

str =” srcmini”

作为下一行, 那么它首先检查给定的String常量是否存在于String池区中。如果存在, 则str指向它, 否则创建一个新的String常量。

2.对象初始化(动态)

:在此方法中, 将在堆区域中创建一个String对象(而不是大写形式在String池区域中)。我们无法对其进行修改(例如大写)。同样具有相同值的String常量也会在String池区域中创建, 但是该变量将仅指向堆区域中的String对象。

例子:

String str = new String("very");

str = "good";

字符串str =新字符串(“非常”)

as

str =”好”

现在这是一个直接分配, 因此在String池区中将创建一个值为” good”的String常量, 并且str将指向该常量。

as

注意:如果我们再次写入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

}

}

输出如下:

Comparing strings with equals:

true

true

false

Comparing strings with ==:

true

false

false

true

Comparing strings with compareto:

0

-1

以上是 如何在Java中初始化和比较字符串? 的全部内容, 来源链接: utcz.com/p/202655.html

回到顶部