前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Carson带你学Java:关于String类的必知必会!

Carson带你学Java:关于String类的必知必会!

作者头像
Carson.Ho
发布2021-12-06 16:58:51
1880
发布2021-12-06 16:58:51
举报
文章被收录于专栏:Android知识分享

概述

关于String类的必知必会主要包括:

  • String的常用函数
  • equals()与==的区别
  • String、StringBuffer 与 StringBuilder的区别
  • Switch能否用string做参数?

1. String 常用函数

示意图
示意图

2. equals()与==的区别

示意图
示意图

附:

代码语言:javascript
复制
 /**
   * 附1:Object的equals()原函数实现
   * 作用 = 比较的是对象的内存地址(内部实现实际 是 “==”,故作用同 “==”作用)
   */
  public boolean equals (Object obj){
    return (this == obj);
     }

 /**
   * 附2:复写了Object equals()原函数的String 类中的equals
   * 作用:比较两个字符串的内容是否相同
   */
public boolean equals(Object obj){
  // 若2者指向同一个地址,那么它们的内容肯定相同
  // 使用 “==” 比较
  if (this == obj){
    return true;
   }

  // 若不指向同一地址,则判断规则为:
      // 1. 类型是否相同( 即,传入对象是否是String类型,采用 instanceof 比较)
      // 2. 内容是否相同 = 字符串序列是否相同(String类 内部存储 采用char[]实现)
      if (anObject instanceof String) {

                  String anotherString = (String)anObject;
                   int n = value.length; // 注:比较次数 = 第1个String对象的长度n,而不是传入参数中的String对象长度
                   if (n == anotherString.value.length) {
                   char v1[] = value;
                   char v2[] = anotherString.value;

                   // 遍历过程中只要有1个字符不同,就返回false
                   int i = 0;
                    while (n-- != 0) {
                      if (v1[i] != v2[i])
                          return false;
                        i++;
                      }
                   return true;
                  }
              }
           return false;
        }

3. String、StringBuffer 与 StringBuilder的区别

3者 同样用于储存 & 操作字符串,区别如下:

示意图
示意图

4. Switch能否用string做参数?

Java7 前,不支持;在Java 7后,支持

Java7 前支持的类型:枚举、byteshortcharint & 对应的封装类

至此,关于关于Java String类的必知必会讲解完毕。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/08/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 1. String 常用函数
  • 2. equals()与==的区别
  • 3. String、StringBuffer 与 StringBuilder的区别
  • 4. Switch能否用string做参数?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档