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

作者: Arvin Chen 分类: Java 来源: Break易站(www.breakyizhan.com)

在Java中初始化字符串

1.直接初始化(字符串常量):在这种方法中,一个String常量对象将被创建在存储器内堆区内的String池中。因为它是一个常量,所以我们不能修改它,即String类是不可变的

例子:

String str =“GeeksForGeeks”; 

str =“geeks”; //这个声明将使str
               //指向新的String常量(“geeks”)
               //而不是修改前一个 
               //字符串常量。

String str =“GeeksForGeeks”; 
如何在Java中初始化和比较字符串?

str =“geeks”;
如何在Java中初始化和比较字符串?

注意:如果我们再次将str =“GeeksForGeeks”写为下一行,那么它首先检查String String池中是否存在给定的String常量。如果它存在,则str将指向它,否则创建一个新的String常量。

2.对象初始化(动态):在此方法中,将在堆区中创建一个String对象(不在大写字符串池区内)。我们可以对它进行修改。同样的值,在字符串池区也会创建一个String常量,但是这个变量只会指向堆区的String对象。

例子:

String str = new String(“very”);
str =“good”;     

String str = new String(“very”)
如何在Java中初始化和比较字符串?

str =“good”
现在这是一个直接赋值,所以在字符串合并区域中创建带有值“good”的字符串常量,str将指向该字符串。
如何在Java中初始化和比较字符串?

注意:如果我们再次写入str = new String(“very”),那么它将创建一个值为“very”的新对象,而不是指向堆区中具有相同值的可用对象。但是如果我们写str =“very“,那么它将指向String常量对象,其值为”very“,出现在String池区域中。

比较字符串及其引用

1. equals()方法:它比较字符串的是否相等。返回类型是布尔值。在几乎所有的情况下,你都可以使用useObjects.equals()。

2. ==运算符:它比较引用而不是值。返回类型是布尔值。==用于你知道你正在处理字符串的罕见情况。

3. compareTo()方法:它按照字典顺序进行比较,并返回一个整数值,该值描述第一个字符串是否小于,等于或大于第二个字符串。例如,如果str1和str2是两个字符串变量,则if

str1 == str2:返回0
str1> str2:返回正值
str1 <str2:返回负值

注意:compareTo方法返回的正值和负值是两个字符串中第一个不匹配字符的差异。

// 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(" Comparing strings with ==:");
        System.out.println(s1==s2);
        System.out.println(s1==s3);
        System.out.println(s3==s4);
 
        System.out.println(" Comparing strings with compareto:");
        System.out.println(s1.compareTo(s3));
        System.out.println(s1.compareTo(s5));
    }
}

输出:

Comparing strings with equals:
true
true 
false
Comparing strings with ==:     
true
false
false
Comparing strings with compareto:
0     
-1
  •   本文标题:如何在Java中初始化和比较字符串? - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/3943.html
    扫描二维码添加微信 
  • ,领取淘宝优惠券,淘宝购物更优惠。现在添加微信,还可以领取机械键盘优惠券!添加微信后,分享淘宝选中的机械键盘给淘宝机器人即可领取!
    支持我们,就用微信淘宝!

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注

    更多阅读