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

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

    在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 字符串
  •   本文标题:如何在Java中初始化和比较字符串? - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/3943.html

    发表笔记

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

    更多阅读