首页 > 代码库 > 黑马程序员——JAVA学习笔记七(String类)

黑马程序员——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)
    
 

黑马程序员——JAVA学习笔记七(String类)