个性化阅读
专注于IT技术分析

如何在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
赞(0) 打赏
未经允许不得转载:srcmini » 如何在Java中初始化和比较字符串?
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏