java中的字符串(String)

来源:互联网 发布:手机淘宝怎么跟踪物流 编辑:程序博客网 时间:2024/06/09 19:46

1.字符串创建(长字符串连接,推荐StringBuilder)

采用字面值的方式赋值:
例如 String str = “hello”,JVM首先会去字符串池中查找是否存在”hello”这个对象,如果不存在,则在字符串池中创建”hello”这个对象,然后将池中”hello”这个对象的引用地址返回给字符串常量str;如果存在,则不创建任何对象,直接将池中”hello”这个对象的地址返回,赋给字符串常量str。String str2 = “hello”,str ==str2 结果为true;

采用new关键字:
String str =new(“hello”),JVM首先在字符串池中查找有没有”hello”这个字符串对象,如果有,则不在池中再去创建”hello”这个对象了,直接在堆中创建一个”hello”字符串对象,然后将堆中的这个”hello”对象的地址返回赋给引用str;如果没有,则首先在字符串池中创建一个”hello”字符串对象,然后再在堆中创建一个”hello”字符串对象,然后将堆中这个”hello”字符串对象的地址返回赋给str。String
str2 = new(“hello”),str == str2 结果为false;//
==为比较地址。如果使用String类的equals方法,比较的是值,str1.equals(str2) 结果为true。

2.空字符串与null
空字符串代表长度为0的字符串,null代表没有关联任何对象

3.常用api

  • char charAt(int index):返回给定位置的代码单元
  • int codePointAt(int index):返回从给定位置开始的码点
  • int compareTo(String other):按照字典顺序,如果支付穿位于ohter之前,返回一个负数;如果字符串位于
  • other之后返回一个正数;如果相等,返回0
  • boolean equals(String other):如果与ohter相等返回true
  • boolean equalsIgnoreCase(String other):忽略大小写的比较
  • boolean startWih(Sting prefix):以prefix开头,则返回true
  • boolean endWith(String suffix):以suffix结尾,则返回true
  • int indexOf(……):从前往后匹配,存在返回开始位置,不存在返回-1
  • int lastIndexOf(……):从后往前匹配
  • int length() : 返回字符串长度
  • String replace(CharSequence oldStr, CharSequence newStr):替换
  • String sustring(……):截取
  • String toLowerCase():转换成小写
  • String toUpperCase():转换成大写
  • String trim():返回新字符串,去掉头部和尾部空格
  • String join(……):字符串连接
原创粉丝点击