我们都知道字符串在java中是不可变的,所以它产生了两种初始化方式,就像我们有 弦乐池 在爪哇。
方法: 在Java中初始化字符串
- 直接初始化
- 间接初始化
方式1:直接初始化(字符串常量)
在这个方法中,字符串常量对象将在内存中堆区域内的字符串池区域中创建。因为它是一个 常数 ,我们不能修改它,即字符串类是不可变的。
插图:
String str = "GeeksForGeeks"; str = "geeks"; // This statement will make str // point to new String constant("geeks") // rather than modifying the previous // String constant.
左派媒体
String str = "GeeksForGeeks";
从右上方的媒体
str = "geeks";
注: 如果我们再写信 str=“Geeksforgeks” 作为下一行,它首先检查给定的字符串常量是否存在于字符串池区域中。如果它存在,那么str将指向它,否则将创建一个新的字符串常量。
方式2: 对象初始化(动态)
在这个方法中,一个字符串对象将在堆区域中创建(而不是在字符串池区域中,如大写)。我们不能修改它(如大写)。同样使用相同的值,也会在字符串池区域中创建一个字符串常量,但该变量将仅指向堆区域中的字符串对象。
插图:
String str = new String("very");str = "good";
我们可以从中得出如下结论:
在左下方的媒体
String str = new String("very");
在右下方的媒体中,如下所示:
str = "good"
现在,这是一个直接赋值,因此在字符串池区域中创建一个值为“good”的字符串常量,str将指向该值。
注: 如果我们再写信 str=新字符串(“非常”) ,然后它将创建一个值为“very”的新对象,而不是指向堆区域中具有相同值的可用对象。但如果我们写信 str=“非常” ,然后它将指向字符串池区域中存在的值为“very”的字符串常量对象。
方法: 比较字符串及其引用
- equals()方法: 相比之下 价值观 平等的弦。返回类型为布尔型。在几乎所有情况下,都可以使用useObjects。等于()。
- ==操作员: 相比之下 引用而非值 .返回类型为布尔值。==用于极少数情况下,你知道你正在处理的是实习字符串。
- compareTo()方法: 它按字典顺序比较值,并返回一个整数值,该整数值描述第一个字符串是否小于、等于或大于第二个字符串。例如,如果str1和str2是两个字符串变量,请参考以下内容:
- str1==str2: 返回0
- str1>str2: 返回一个正值
- str1
返回一个负值
注: 返回的正值和负值 比较函数 方法是两个字符串中第一个不匹配字符的差。
实施: 我们将通过下面的例子讨论如何与字符串进行比较,以证明上述内容的合理性
例子:
JAVA
// Java program to Illustrate Comparison of Two Strings // Main class public class GFG { // Main driver method public static void main(String[] args) { // Custom input strings to compare String s1 = "Ram" ; String s2 = "Ram" ; String s5 = "Shyam" ; String s3 = new String( "Ram" ); String s4 = new String( "Ram" ); // Checking whether strings are equal or not // with help of equals() method 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)); String nulls1 = null ; String nulls2 = null ; // NullPointerException will be throws if // we try to compare nulls strings // System.out.println(nulls1.equals(nulls2)); // Comparing strings using == operator 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); // Comparing strings via compareTo() method System.out.println( " Comparing strings via compareTo() Method :" ); System.out.println(s1.compareTo(s3)); System.out.println(s1.compareTo(s5)); // NullPointerException if we try to compare strings // with usage of compareTo() method // System.out.println(nulls1.compareTo(nulls2)); } } |
Comparing strings with equals:truetruefalse Comparing strings with ==:truefalsefalsetrue Comparing strings via compareTo() Method :0-1
本文由 高拉夫·米格拉尼 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。