首页 > 编程语言 >【==是判断相等吗?---错辣】C++和JAVA中判断字符串值相等的区别

【==是判断相等吗?---错辣】C++和JAVA中判断字符串值相等的区别

时间:2023-08-13 22:32:18浏览次数:40  
标签:相等 JAVA String s2 错辣 字符串 s1


参考文章:这里这里这里

先上结论

C++中的string类型可以使用==!=来判断两个字符串的值是否相等;而JAVA不行,JAVA中==!=是用来判断两个字符串的地址是否相同(或者说是对象是否相同,即是否为同一个对象)。

C++中string

#include <iostream>
#include <string>
using namespace std;
int main()
{  string s1="abc",s2="abc";
   if(s1==s2) cout<<"s1和s2相等";
   else cout<<"s1和s2不相等"; 
  return 0;
}
  • 运行结果

【==是判断相等吗?---错辣】C++和JAVA中判断字符串值相等的区别_bc

结果解释:C++中可以利用==来判断两个字符串的值是否相等。

JAVA中String

package hello;

public class TEMP {
	public static void main(String args[]) throws IOException {
		String s1="abc",s2="abc";
 	   if(s1==s2) System.out.println("s1和s2相等");
 	   else System.out.println("s1和s2不相等");
	}
}
  • 运行结果

【==是判断相等吗?---错辣】C++和JAVA中判断字符串值相等的区别_字符串_02

结果解释:JAVA中==来判断两个字符串的地址是否相同(或者说是两个字符串是否是同一对象),由于相同的字符串常量(程序中为"abc")在内存中只会存在一份,所以两个字符串指向的字符串常量是同一个地址,所以根据JAVA中,==来判断两个字符串的地址是否相同的原则可知,s1和s2相等。

package hello;

public class TEMP {
	public static void main(String args[])  {
		String s1=new String("abc"),s2=new String("abc");
 	   if(s1==s2) System.out.println("s1和s2相等");
 	   else System.out.println("s1和s2不相等");
	}
}
  • 运行结果

【==是判断相等吗?---错辣】C++和JAVA中判断字符串值相等的区别_字符串_03

结果解释:由于这两个字符串分别创建了两个对象(使用new开辟了两段不同的存储空间,所以两个字符串的的地址也不同,只是两个字符串对象所在地址中存储的数值(字符)相同),所以根据JAVA中,==来判断两个字符串的地址是否相同的原则可知,s1和s2不相等。

package hello;

public class TEMP {
	public static void main(String args[])  {
		String s1=new String("abc"),s2=new String("abc");
 	   if(s1.equals(s2)) System.out.println("s1和s2相等");
 	   else System.out.println("s1和s2不相等");
	}
}
  • 运行结果

【==是判断相等吗?---错辣】C++和JAVA中判断字符串值相等的区别_JAVA_04

结果解释:JAVA中利用equas()区分大小写)成员函数来判断两字符串的值是否相等。

package hello;

public class TEMP {
	public static void main(String args[])  {
		String s1=new String("abc"),s2=new String("ABC");
 	   if(s1.equalsIgnoreCase(s2)) System.out.println("s1和s2相等");
 	   else System.out.println("s1和s2不相等");
	}
}
  • 运行结果

【==是判断相等吗?---错辣】C++和JAVA中判断字符串值相等的区别_字符串_05

结果解释:JAVA中利用equalsIgnoreCase()不区分大小写)成员函数来判断两字符串的值是否相等。

回顾结论

C++与JAVA之间存在着一些区别,我们需要重视区别才能更好地灵活学习和运用不同的编程语言。总之,C++中可以利用==来判断两个字符串的值是否相等;而JAVA中必须使用String类的成员函数equals()(区分大小写)和equalsIgnoreCase()(不区分大小写)来判断两个字符串的值是否相等

标签:相等,JAVA,String,s2,错辣,字符串,s1
From: https://blog.51cto.com/u_15720469/7070077

相关文章

  • java基础02
    数据类型扩展进制,二进制以0b开头,八进制以0开头,十六进制以0x(x必须为小写)开头,如:publicclasshello{publicstaticvoidmain(String[]args){inti=0b10;//二进制inti2=10;//十进制inti3=010;//八进制inti4=0x10;//十......
  • Java入门学习——day3(基础语法)
    使用变量的几个注意事项变量要先声明才能使用。这里的age没有声明,会标红,鼠标放在标红的age上出现了Cannotresolvesymbol'age',运行会报错!改正:变量是什么类型,就应该用来装什么类型的数据,否则报错。本来age是int类型,但是我们给了一个double类型。改正:变量是从定义开始到“}”......
  • 《深入理解Java虚拟机》读书笔记:内存分配策略
    Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。关于回收内存这一点,我们已经使用了大量篇幅去介绍虚拟机中的垃圾收集器体系以及运作原理,现在我们再一起来探讨一下给对象分配内存的那点事儿。对象的内......
  • Java语法
    第一个Java程序下面看一个简单的Java程序,它将输出字符串 HelloWorld实例publicclassHelloWorld{/*第一个Java程序*它将输出字符串HelloWorld*/publicstaticvoidmain(String[]args){System.out.println("HelloWorld");//输出HelloWorld}}运行......
  • Java判断word文档的重复,达到word文档的整理、整合效果代码实现
    在Java中,你可以使用ApachePOI库来操作Word文档并实现判断文档的重复。以下是一种实现思路:导入ApachePOI库:首先,你需要在Java项目中导入ApachePOI库,以便能够使用它的功能。你可以在项目的构建文件(如Maven或Gradle)中添加相应的依赖项。读取Word文档内容:使用ApachePOI库的XWPFDocum......
  • Java中Integer数据类型详细用法
    Java中的Integer类在对象中包装了一个基本类型int的值。以下是关于Integer类的详细用法和相关代码:1.构造方法:Integer(intvalue):构造一个新分配的Integer对象,它表示指定的int值。Integer(Strings):构造一个新分配的Integer对象,它表示String参数所指示的int值。javaCopycodeI......
  • Java-重写
    Java-重写重写:就是父亲给儿子的儿子不想要,他要改一下定义:子类对父类给的方法不满意,对父类方法进行重新定义。要求:子类方法的声明必须和父类中的方法完全一样。比如:父类李渊packagecom.wq.bao;/***@authorWangQi*@date2020/4/222:46*/publicclassLiYuan{......
  • JavaScript学习笔记
    JavaScript1JavaScript输出JavaScript能够以不同方式"显示"数据:使用window.alert()写入警告框使用document.write()写入HTML输出使用innerHTML写入HTML元素使用console.log()写入浏览器控制台1.1使用innerHTML如需访问HTML元素,JavaScript可使用doc......
  • Java基础之抽象类
    1、介绍和使用 ......
  • Java 常量与变量
    1.引言在Java编程中,常量和变量是两个基本概念,它们在程序中起着重要的作用。常量是指在程序运行过程中数值保持不变的量,而变量是可以在程序运行过程中改变数值的量,我们将深入探讨Java中常量和变量的定义、声明、命名规范、数据类型以及它们的作用和用途。2.常量(Constants)2.1.常......