zoukankan      html  css  js  c++  java
  • 黑马程序员——JAVA学习笔记七(String类)

    1,    String类一旦被初始化就不会被改变。
    字符串不不能被改变,编译可以让字符串之间共享。编译器将各种字符串存放在公共的存储池子中。字符串变量指向存储池中相应的位置。实际上只有字符串常量。而+(除了常量相加)和其它方法操作的不是共享的。
    String s1 ="abc" ,String s2 = "abc" (他们存在公共池中),String s3 = new String ("abc"),存在堆中; 则s1== s2; s1! = s3;
     
    2,    字符串常用功能:    
        1,获取:
        1.1 获取字符串中字符的个数(长度).
          int length();
        1.2 根据位置获取字符。
          char charAt(int index);
        1.3 根据字符获取在字符串中的第一次出现的位置.
          int indexOf(int ch)
          int indexOf(int ch,int fromIndex):从指定位置进行ch的查找第一次出现位置
          int indexOf(String str);
          int indexOf(String str,int fromIndex);
           根据字符串获取在字符串中的第一次出现的位置.
          int lastIndexOf(int ch)
          int lastIndexOf(int ch,int fromIndex):从指定位置进行ch的查找第一次出现位置
          int lastIndexOf(String str);
          int lastIndexOf(String str,int fromIndex);
        1.4 获取字符串中一部分字符串。也叫子串.
          String substring(int beginIndex, int endIndex)//包含begin 不包含end 。
          String substring(int beginIndex);
         
        2,转换。
          2.1 将字符串变成字符串数组(字符串的切割)
           String[]  split(String regex):涉及到正则表达式.
          2.2 将字符串变成字符数组。
           char[] toCharArray();
          2.3 将字符串变成字节数组。
           byte[] getBytes();
          2.4 将字符串中的字母转成大小写。
           String toUpperCase():大写
           String toLowerCase():小写
         2.5  将字符串中的内容进行替换
          String replace(char oldch,char newch);
           String replace(String s1,String s2);
          2.6 将字符串两端的空格去除。
           String trim();
          2.7 将字符串进行连接 。
           String concat(string);
       
        3,判断
          3.1 两个字符串内容是否相同啊?
           boolean equals(Object obj);
           boolean equalsIgnoreCase(string str);忽略大写比较字符串内容。
          3.2 字符串中是否包含指定字符串?
           boolean contains(string str);
          3.3 字符串是否以指定字符串开头。是否以指定字符串结尾。
           boolean startsWith(string);
           boolean endsWith(string);
         
        4,比较。
            int compare (String s)  返回-1 0 1
     
    5,    有时候需要较短的字符串构建字符串,采用字符串连接效率太低,每次连接字符串都会构建新的String对象。既耗时又浪费空间。
    采用StringBulider类就可以避免类似问题的发生。StringBuffer是线程安全类,效率会降低。
    主要方法:
        1,添加:
          StringBuffer append(data);
          StringBuffer insert(index,data);
        2,删除:
          StringBuffer delete(start,end):包含头,不包含尾。
          StringBuffer deleteCharAt(int index):删除指定位置的元素
        3,查找:
          char charAt(index);
          int indexOf(string);
          int lastIndexOf(string);
        4,修改:
          StringBuffer replace(start,end,string);
          void setCharAt(index,char);
       
        增删改查  C(create)U(update)R(read)D(delete)
    reverse()反向遍历  triToSize()改变大小。
     
    6,    包装类和String之间转化
        自动装箱:自动拆箱
        注意:自动装箱,如果装箱的是一个字节,那么该数据会被共享不会重新开辟空间。
        基本类型--->字符串
          1,基本类型数值+""
          2,用String类中的静态方法valueOf(基本类型数值);
          3,用Integer的静态方法valueO(基本类型数值);
       
        字符串--->基本类型
          1,使用包装类中的静态方法   xxx parseXxx("xxx类型的字符串");
           int parseInt("intstring");
           long parseLong("longstring");
           boolean parseBoolean("booleanstring");
           只有Character没有parse方法
          2,如果字符串被Integer进行对象的封装。
           可使用另一个非静态的方法,intValue();
           将一个Integer对象转成基本数据类型值。
     
       十进制-->其他进制。
          toBinaryString
          toOctalString
          toHexString
       
        其他进制-->十进制。
          parseInt("string",radix)
        
     
  • 相关阅读:
    @Profile使用及SpringBoot获取profile值
    浅谈maven中的scope,systempath
    Maven Filter与Profile隔离生产环境与开发环境
    spring的@Value注解使用
    maven项目引入spring boot依赖之后filter不生效的问题
    SpringBoot整合Servlet的两种方式
    程序员,30岁,“理所应当”就该中年危机了吗?
    Spring Boot 2 Webflux的全局异常处理
    正经学C#_表达式与其运算符[赋值运算符]:《c#入门经典》
    正经学C#_表达式与其运算符[算术运算符]:《c#入门经典》
  • 原文地址:https://www.cnblogs.com/solaire/p/4181352.html
Copyright © 2011-2022 走看看