zoukankan      html  css  js  c++  java
  • 十四、字符串详解

    1.创建方式的不同,比较方式的不同

    public class Test {
        public static void main(String[] args) {
            String s1="Hello World";
            String s2="Hello World";
            String s3=new String("Hello World");
            String s4=new String("Hello World");
            
            //true
            System.out.println(s1==s2);
            //false
            System.out.println(s2==s3);
            //false
            System.out.println(s3==s4);
            
            //==判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象,equals比较存储在两个字符串对象中的内容是否一致
    System.out.println(s1.equals(s2));//true System.out.println(s2.equals(s3));//true System.out.println(s3.equals(s4));//true } }

    2.常用方法

    和长度有关的方法

    返回类型      方法名               作用
     int        length()        得到一个字符串的字符个数(一个中文是一个字符,一个英文是一个字符,一个转义字符是一个字符)

    和数组有关的方法

    返回类型        方法名             作用
    byte[]        getBytes()       将一个字符串转换成字节数组
    char[]        toCharArray()    将一个字符串转换成字符数组
    String[]      split(String)    将一个字符串按照指定内容劈开

    和判断有关的方法

    返回类型        方法名                         作用
    boolean       equals(String)                判断两个字符串的内容是否一模一样
    boolean       equalsIgnoreCase(String)      忽略大小写的比较两个字符串的内容是否一模一样
    boolean       contains(String)              判断一个字符串里面是否包含指定的内容
    boolean       startsWith(String)            判断一个字符串是否以指定的内容开头
    boolean       endsWith(String)              判断一个字符串是否以指定的内容结尾

    和改变内容有关的方法

        和改变内容有关的方法,都不会直接操作原本的字符串
        而是将符合条件的字符串返回给我们,所以注意接收
    返回类型        方法名                         作用
    String        toUpperCase()                 将一个字符串全部转换成大写
    String        toLowerCase()                 将一个字符串全部转换成小写
    String        replace(String,String)        将某个内容全部替换成指定内容
    String        replaceAll(String,String)     将某个内容全部替换成指定内容,支持正则
    String        repalceFirst(String,String)   将第一次出现的某个内容替换成指定的内容
    String        substring(int)                从指定下标开始一直截取到字符串的最后
    String        substring(int,int)            从下标x截取到下标y-1对应的元素
    String        trim()                        去除一个字符串的前后空格

    和位置有关的方法

    返回类型        方法名                     作用
    char          charAt(int)               得到指定下标位置对应的字符
    int           indexOf(String)           得到指定内容第一次出现的下标
    int           lastIndexOf(String)       得到指定内容最后一次出现的下标

    3.StringBuffer和StringBuilder

      String 字符串常量
      StringBuffer 字符串变量(线程安全)
      StringBuilder 字符串变量(非线程安全)
       简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的。
       而如果是使用 StringBuffer 类则结果就不一样了,每次结果都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,再改变对象引用。

       一般来说,StringBuilder>StringBuffer>String,但是追求线程安全只能用StringBuffer

      

      常用方法

      append方法,将内容追加到对象末尾

      insert(),将内容插入到对象指定位置

      其它方法与String方法类似,更多请参阅帮助文档

  • 相关阅读:
    mysql replication常见错误整理
    enq: TX
    LOGMNR分析redo log和archive log教程
    使用create datafile... as ...迁移数据文件到裸设备
    mysql无法启动,报错 Can't start server: can't create PID file: No space left on device
    MYSQL 权限设置查询
    ORA-02437 违反主键
    oracle sequence的用法
    sequence有关问题
    关于Relay Log无法自动删除的问题
  • 原文地址:https://www.cnblogs.com/myz666/p/8446027.html
Copyright © 2011-2022 走看看