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

简介: 文章目录先上结论C++中stringJAVA中String回顾结论

先上结论

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


C++中string

截屏2023-04-25 22.26.42.png

  • ·运行结果
  • 截屏2023-04-25 22.28.49.png
  • 结果解释:C++中可以利用==来判断两个字符串的值是否相等。

JAVA中String

截屏2023-04-25 22.29.45.png

  • ·运行结果


截屏2023-04-25 22.30.34.png

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


截屏2023-04-25 22.31.24.png

  • ·运行结果

截屏2023-04-25 22.33.06.png

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


截屏2023-04-25 22.33.43.png

  • ·运行结果

截屏2023-04-25 22.34.37.png

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

截屏2023-04-25 22.35.14.png

  • ·运行结果


截屏2023-04-25 22.36.12.png

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


回顾结论

C++与JAVA之间存在着一些区别,我们需要重视区别才能更好地灵活学习和运用不同的编程语言。

总之,C++中可以利用==来判断两个字符串的值是否相等;而JAVA中必须使用String类的成员函数equals()(区分大小写)和equalsIgnoreCase()(不区分大小写)来判断两个字符串的值是否相等。


目录
相关文章
|
18天前
|
安全 Java API
【Java字符串操作秘籍】StringBuffer与StringBuilder的终极对决!
【8月更文挑战第25天】在Java中处理字符串时,经常需要修改字符串,但由于`String`对象的不可变性,频繁修改会导致内存浪费和性能下降。为此,Java提供了`StringBuffer`和`StringBuilder`两个类来操作可变字符串序列。`StringBuffer`是线程安全的,适用于多线程环境,但性能略低;`StringBuilder`非线程安全,但在单线程环境中性能更优。两者基本用法相似,通过`append`等方法构建和修改字符串。
43 1
|
3天前
|
算法 Oracle Java
Java字符串拼接技术演进及阿里巴巴的贡献
本文主要讲述了Java字符串拼接技术的演进历程,以及阿里巴巴贡献的最新实现 PR 20273。
|
8天前
|
算法 Oracle Java
Java字符串拼接技术演进及阿里巴巴的贡献
本文主要讲述了Java字符串拼接技术的演进历程,以及阿里巴巴贡献的最新实现 PR 20273。
|
14天前
|
XML JSON 前端开发
Java @RequestParam和@RequestBody的区别是什么?
【8月更文挑战第28天】Java @RequestParam和@RequestBody的区别是什么?
27 5
|
19天前
|
存储 Java
|
20天前
|
Java
Java 中 notify() 和 notifyAll() 的区别
【8月更文挑战第22天】
41 4
|
20天前
|
Java
|
19天前
|
存储 Java
如何在 Java 中打印字符串数组列表
【8月更文挑战第23天】
26 2