常用API

文章详细介绍了Java中的String类,强调其不可变性以及常用的API,如length(),charAt(),replace()等。同时,提到了字符串常量池的概念。另外,文章还讨论了ArrayList集合类,包括其动态增长的特点,常用的方法如add(),get(),remove()等,并提及了泛型的应用。
摘要由CSDN通过智能技术生成

常用API

定义

  • Application Programming Interface应用程序接口

String

  • 定义
    • String类定义的变量可以用于指向字符串对象,然后操作该字符串。
    • Java程序中的所有字符串文字(例如“abc”都为此类的对象
    • 常被称为不可变字符串类型,它的对象在创建后不能被更改。
      • 以“”方式给出的字符串对象,在字符串常量池中存储,字符串常量池在堆内存中
      • 以+符号更改的字符串值不会改变,而是会拼接起来指向新的字符串地址

  • 创建方式
    • 直接用“”定义
    • 通过构造器构造
      • new String()
        • 创建一个空白字符串对象,不含有任何内容(几乎不用)
      • new Strings(String)
        • 根据传入字符创建字符串对象(几乎不用)
      • new String(char[] c)
        • 根据字符数组的内容,来创建字符串对象
      • new Strings(byte[] b)
        • 根据字节数组的内容,来创建字符串对象
          • 整数转ASCII码
  • 内存原理
    • 两个通过“”定义的字符串地址一样,指向同一个字符串常量池中的地址

    • 两个通过new构造的字符串指向不同的字符串地址

    • “a”+“b”+"c"和“abc”的效果一样,Java进行了编译优化
  • 提供了哪些API
    • 遍历
      • .name.length()
        • 返回字符长度
      • .charAt(i)
        • 找第i个字符
    • 替换
      • .tocharArray()
        • 字符串替换成字符数组
    • 截取
      • .subString(int beginIndex, int endIndex)
        • 注意:包括beginIndex不包括endIndex!
      • .subString(int beginIndex)
        • 从beginIndex一直截取到末尾
    • 替换
      • .replace(CharSequece target, CharSequence replacement)
        • 用replacement替换target
    • 包含
      • .contain(CharSequece s)
        • 返回是否包含s的布尔值
    • 相等
      • 字符串比较不适合用 == 来比较
        • 使用String类提供的“equals"比较:只关心内容一样即可
        • 忽略大小写比较内容
          • .equalsIgnoreCase(String)
          • 适合做验证码比较
    • 开始
      • .startWith(String prefix)
        • 返回是否以prefix开始的布尔值
    • 分割
      • .split(String s)
        • 按照某个内容把字符串分割成字符串数组返回
  • 解决实际案例
    • 验证码
    • 登录界面
    • 屏蔽手机号中间四位
      • 截取前3位和后4位,再用来拼接
      • 截取3到7,然后替换
        • 不可行!!!
        • 可能与后4位相同,也会替换

ArrayList

  • 定义
    • 代表的是集合类,集合是一种容器,与数组类似,不同的是集合的大小是不固定的
      • 购物车使用集合对象来存储商品对象更合适
        • 随时可能添加新商品对象进来(个数不确定)
        • 也随时可能删除商品对象
    • 通过创建ArrayList的对象表示得到一个集合容器,同时ArrayLIst提供了比数组更好用,更丰富的API功能给程序员使用
    • 适合增删改查
  • ArrayList常用API
    • 添加
      • add(E e)
        • 返回是否成功的布尔
      • add(int index, E e)
        • 在第index个位置插入元素,后面元素依次往后迁移
    • 返回元素
      • .get(int index)
        • 获取某个索引位置的元素值
    • 返回个数
      • .size()
        • 获取集合的大小(元素个数)
    • 遍历
      • for(int i = 0; i < list.size(); i++){ System.out.println(list.get(i))}
    • 删除
      • .remove(int index)
        • 删除某个索引位置的元素值,并返回被删除元素的值
      • .remove(Object o)
        • 直接删除元素值,删除成功返回true,失败返回false
          • 只会删除最前面那一个
    • 修改
      • .set(int index, E e)
        • 修改某个索引的元素值,返回修改前的值
  • 对泛型的支持
    • ArrayList: 其实就是一个泛型类,可以在编译阶段约束集合对象只能操作某种数据类型
      • 注意:不能填int,只能填Integer
    • ArrayList list = new ArrayList
      • 可以简写成ArrayList list = new ArrayList<>
  • 解决实际问题
    • 存储自定义对象
      • 案例

      • 集合中存储的元素并不是对象本身,而是对象的地址
    • 遍历并删除元素值

      • 注意事项

        • 这种情况会删不干净!remove掉一个元素后,后续元素会立马前移,i却依然会++
        • 改进
          • (1)成功删除后,i–
          • (2)从后面倒着删除
    • 元素搜索
      • 案例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值