请问这种情况下字符串s1是el,字符串l也是el,那么为什么结果是false呢?
3条回答 默认 最新
关注
引自免费微信小程序:皆我百晓生
在Java中,
substring
方法用于从原始字符串中提取一个子字符串。根据您提供的代码片段:String s = "hello"; String l = "el"; String s1 = s.substring(1, 3); System.out.println(s1); // 输出 "el" System.out.println(s1 == l); // 输出 "false"
这里,
s1
是通过从字符串s
中截取索引从 1(包含)到 3(不包含)的字符得到的新字符串,结果为 "el"。而
l
字符串也是 "el"。但是,在Java中,使用
==
运算符比较两个字符串时,实际上是在比较它们的引用是否指向同一个对象,而不是它们的内容是否相同。所以即使
s1
和l
的内容都是 "el",但它们是两个不同的字符串对象,因此s1 == l
返回的是false
。要比较两个字符串的内容是否相等,应该使用
equals()
方法或equalsIgnoreCase()
方法:System.out.println(s1.equals(l)); // 输出 "true"
这样比较的结果会基于字符串的内容进行判断,而非对象引用。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥20 要做柴油机燃烧室优化 需要保持压缩比不变 请问怎么用AVL fire ESE软件里面的 compensation volume 来使用补偿体积来保持压缩比不变
- ¥15 算能的sail库的运用
- ¥15 'Content-Type': 'application/x-www-form-urlencoded' 请教 这种post请求参数,该如何填写??重点是下面那个冒号啊
- ¥15 找代写python里的jango设计在线书店
- ¥15 请教如何关于Msg文件解析
- ¥200 sqlite3数据库设置用户名和密码
- ¥15 AutoDL无法使用docker install吗?
- ¥15 cups交叉编译后移植到tina sdk的t113,只需要实现usb驱动打印机,打印pdf文件
- ¥30 关于#wireshark#的问题:需要网络应用流量数据集需要做长度序列的实验,需要与应用产生的会话的数据包的长度,如视频类或者聊天类软件
- ¥15 根据上述描述表示泥浆密度沿着管路的长度方向在不断变化,如何来表示泥浆密度随管路的变化(标签-matlab|关键词-流计算)