一 String类概述

1.在java.lang包下
2.String是final类,所以String类不可有子类
3.String类是字符串常量类,String对象创建后不可修改

二 补充定义:

1.String常量:是用双引号括起来的字符序列。
Java把用户程序中的String常量放入常量池中

2.字符串常量池:
JVM为了减少字符串对象的重复创建,其维护了一个特殊的内存,这段内存被称为字符串常量池。
注意:相同内容的字符串常量在常量池中只存一份。

凡是new运算符构造出的对象都不在常量池,在动态区

三 字符串的并置

String对象可以用“+”进行并置运算

1.两个常量并置

得到的仍然是常量,且若常量池没有这个常量,就放入常量池。

2.有变量的并置

得到新的String对象(在动态区存放)。

注意:此时在用==比较

        String hello = "你好";
        String testOne = "你"+"好";
        System.out.println(hello==testOne);// true

        String you = "你";
        String hi = "好";
        String testTwo = you+hi;
        System.out.println(hello==testTwo);//  false
        String testThree = you+hi;
        System.out.println(testTwo==testThree);//  false

四 String类常用的构造方法

(1)pubic String() 创建空字符串
(2)public String(String original) 根据已有的String对象创建另一个String
(3)public String(char[] chars) 根据字符数组的内容创建字符串
(4)public String(byte[] bytes) 字节数组 例特殊:{97,98,99}——>abc
(5)String s = "abc"; 直接赋值来创建字符串
(6)String(char a[],int startIndex,int count) 在a中从startIndex开始截取count个

常用方法

  1. length() 获取字符串长度
  2. equals() 比较引用类型的数值

    • equalsIgnoreCase() 忽略大小写比较..
  3. startWith(String str) 判断此字符串是否以指定str开头

    • endWith(String str) 判断此字符串是否以指定str结尾
  4. concat(String str) 将指定字符串str连接到该字符串末尾
  5. compareTo​(String anotherString) 按字典顺序比较两个字符串大小。 正值大于..

    • compareToIgnoreCase​(String str) 忽略大小写比较
  6. contains(CharSequence s) ​ 当且仅当此字符串包含指定的char值序列时才返回true。
  7. indexOf​(String str) 返回指定子字符串第一次出现的字符串内的索引。

    • indexOf​(String str, int fromIndex) ...,从指定的索引开始。
  8. replace​(char oldChar, char newChar) 将所有old..换成new..
  9. substring(int start) 返回此字符串的子字符串。 包含start

    • substring​(int start, int end) 包含start 不包含end字串长度end-start
  10. trim​() 去掉前后空格
  11. split​(String regex) 将此字符串拆分为给定的 regular expression的匹配。

     

    String str1 = "abc-xyz";
    String[] split = str1.split("-");
    for(int i=0;i<split.length;i++){
    sout split[i]
    } //abc(换行)xyz

五 字符串与基本数据的相互转化

1.Integer类调用其类方法parseInt
public static int parseInt(String s) 将 数字 字符组成的字符串,转换成int型数据。"876"——>876

类似的paseByte、parseShort...将 数字 字符组成的字符串转换成相应的基本数据类型

2.String类的类方法valueOf
public static String valueOf(byte n)
public static String valueOf(int n) 整数型转换成字符串
....

3.更简单的转换方式
基本类型的数值与“”(空串)做并置运算 即 123+“” 表达式值为 “123” 字符串

六 ==和equals()

1 "=="比较运算符

  • 基本数据类型:比较的是具体的值
  • 引用数据类型:比较的是地址值

2 equals()
比较引用数据类型 具体的数值(字面值)