java 字符串初始化_如何在Java中初始化和比较字符串? - Break易站

Java 字符串

在Java中初始化字符串

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

例子:

String str =“GeeksForGeeks”;

str =“geeks”; //这个声明将使str

//指向新的String常量(“geeks”)

//而不是修改前一个

//字符串常量。

String str =“GeeksForGeeks”;

1525835513-5783-as1.png

str =“geeks”;

1525835515-2558-as2.png

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

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

例子:

String str = new String(“very”);

str =“good”;

String str = new String(“very”)

1525835512-7740-as6.png

str =“good”

现在这是一个直接赋值,所以在字符串合并区域中创建带有值“good”的字符串常量,str将指向该字符串。

as7.png

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

注意: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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值