• java笔记16-字符串


    String类
    String java.lang 默认继承object 实现了三个接口Serializable, CharSequence, Comparable
    是一个特殊的引用数据类型。创建对象方法如下
    String str ="abc"; 直接将字符串常量赋值给str(字符串常量池)
    String str =new String(); 相当于 String str =""
    String str =new String("abc"); 相当于String str ="abc"
    String str =new String(byte[]);
    String str =new String(char[]);
    特性:不可变特性
    在String类中包含一个数组 private final char[] value
    final修饰的是引用类型地址不可变 数组本身的特性:长度不可变动 私有的改不了数组中的内容
    方法

    重写了boolean=equals(Object obj) 比较字面值
    重写了int =hashcode()
    int=compareTO(String str) 实现Comparable接口的方法 按照字典索引的顺序比较
    1、先找到长度短的那个作为循环的次数
    2、str1[i]-str1[2]如果有不一样的 返回插值 如果都一样就返回两个长度的差值
    3、如果循环过后都一样返回0
    重写toString() 返回的不是 类型@hashcode 的形式而是字符串
    char=charAt(int index) 返回字符串给定index对应位置的那个char值
    int=codePointAt(int index) 返回字符串给定index对应位置的那个char值所对应的code码
    str=concat(String str) 拼接 比两个字符串相加省性能
    int=length(); 返回字符串的长度 区别于数组的length是属性
    boolean=contains(charSequence s) 判断给定的s是否在字符串中存在
    boolean=endsWith(String str) 判断是否以某字符串结尾
    boolean=startsWith(String str) 判断是否以某字符串开头
    byte[]=getBytes() 将字符串转换成数组
    char[]=toCharArray() 将字符串转换成数组
    int=indexOf() 字符串第一次出现的位置 第二个参数表示从某个索引开始往后找 找不到返回-1
    int=lastIndexOf() 字符串最后一次出现的位置 第二个参数表示某个索引往前找 找不到返回-1
    boolean=isEmpty() 判断字符串是否为空"" String a=null a.isEmpty()会空指针异常
    str=replace(str1,str2) 将给定的字符串全部替换
    str=replaceAll() 将给定的字符串全部替换
    str=replaceFirst() 替换第一个出现的元素
    split() 按照给定的表达式讲原来的字符串拆分 可以选择拆成几段
    str=substring() 取某个索引到某个索引的值 前闭后开 后面不写就到最后
    str=toUpperCase() 将全部字符串转成大写
    str=toLowerCase() 将全部字符串转成小写
    str=trim() 去前后的空格
    StringBuffer/StringBuilder类
    1、了解类所在的包 java.lang 不需要导包
    2、类的关系 默认的实现继承
    没有继承关系 实现了三个接口Serializable, CharSequence,Appendable
    3、如何创建对象
    StringBlider str =new Stringbuilder(); 默认开辟长度为16的字符串
    StringBlider str =new Stringbuilder(20); 开辟长度为20的字符串
    StringBuilder build2=new StringBuilder("abc"); 默认长度是字符串长度+16
    StringBuilder build2=new StringBuilder(CharSequence seq);
    传另一个String StringBuffer StringBuild类型 默认长度是字符串长度+16


    4、类提供的方法
    StringBuilder=append() 方法 提供了很多重载 拼接 不需要接
    int=capacity() 返回容量值
    int=length() 返回字符串的长度
    char=charAt(int index) 返回字符串给定index对应位置的那个char值
    StringBuilder=setCharAt(1,'a') 将1号索引的char改成a
    int=codePointAt(int index) 返回字符串给定index对应位置的那个char值所对应的code码
    String=substring() 取某个索引到某个索引的值 前闭后开 后面不写就到最后 返回的是String类型
    StringBuilder=delete(2,5) 删除索引的区间值 可以不用接收
    StringBuilder=deleteCharAt() 删除某个索引 可以不用接收
    int=indexOf() 字符串第一次出现的位置 第二个参数表示从某个索引开始往后找 找不到返回-1
    int=lastIndexOf() 字符串最后一次出现的位置 第二个参数表示某个索引往前找 找不到返回-1
    StringBuilder=isnert(1,"2") 索引值插入
    StringBuilder=replace(1,3,"abd") 把索引[1,3)换成abd
    StringBuilder=reverse() 反转
    String=toString() 将StringBuilder对象转换成String对象
    trimToSize() 去掉容量中没有用的空数组空间 capacity()和length()就相等了
    5、StringBuilder和StringBuffer区别
    StringBuilder 1.5才有 安全性低,性能高
    StringBuffer 1.0就有 安全性更高 执行效率低

     

  • 相关阅读:
    android UI 适配小节
    Android中的倒计时实现
    几种适配器&观察者&ListView之间的那点事
    Service stopSelf(int statId)和onStartcommand(Intent intent,int flags,int startId)
    java 虚函数
    java 重载和多态的区别
    小程序体验版路径以及参数携带
    微信小程序--上传图片公用组件
    微信小程序页面返回
    js兼容安卓和IOS的复制文本到剪切板
  • 原文地址:https://www.cnblogs.com/ysmdbk/p/11039375.html
Copyright © 2020-2023  润新知