用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 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
}
}
【如何在Java中初始化和比较字符串()】输出如下:
Comparing strings with equals:
true
true
false
Comparing strings with ==:
true
false
false
true
Comparing strings with compareto:
0
-1
推荐阅读
- 如何在MacOS上安装Golang(详细步骤图解)
- eclipse缺少org.apache.http.legacy的解决办法
- MacBook安装Docker
- XML中 元素和属性比较
- 第六节Dockerfile项目实例
- 如何删除win10的windows.old
- 手把手教你利用Win7系统快速搭建属于自己的网站
- autofs按需挂载nfs文件系统
- oeasy教您玩转vim - 91 - # vim脚本编程展望