如何在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”;
str =”geeks”;
注意:
如果我们再写一次
str =” srcmini”
作为下一行, 那么它首先检查给定的String常量是否存在于String池区中。如果存在, 则str指向它, 否则创建一个新的String常量。
2.对象初始化(动态)
:在此方法中, 将在堆区域中创建一个String对象(而不是大写形式在String池区域中)。我们无法对其进行修改(例如大写)。同样具有相同值的String常量也会在String池区域中创建, 但是该变量将仅指向堆区域中的String对象。
例子:
String str = new String("very");str = "good";
字符串str =新字符串(“非常”)
str =”好”
现在这是一个直接分配, 因此在String池区中将创建一个值为” good”的String常量, 并且str将指向该常量。
注意:如果我们再次写入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 Stringspublic 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