字符串是平常开发中最经常使用的。表明一个字符序列,其底层为字符数组java
构造方法名称 | 描述 |
---|---|
String(String original) | 把字符串数据封装成字符串对象 |
String(char[] value) | 把字符数组的数据封装成字符串对象 |
String(char[] value,int offset, int count) | 把字符数组中的一部分数据封装成字符串对象。offset:从哪一个索引开始。count:拼接几个字符 |
/** * @author 漫路 */ publicclass Demo01String { publicstaticvoid main(String[] args) { //方式 1 //String(String original):把字符串数据封装成字符串对象 Strings1 = new String("hello"); System.out.println("s1:"+s1); System.out.println("---------"); //方式 2 //String(char[] value):把字符数组的数据封装成字符串对象 char[] chs = {'h','e','l','l','o'}; String s2 = new String(chs); System.out.println("s2:"+s2); System.out.println("---------"); //方式 3 //String(char[] value, int index, int count):把字符数组中的一部分数据封装成字符串对象 //String s3 = new String(chs,0,chs.length); char[] arr = {'h','e','l','l','o'}; String s3 = new String(arr,1,3); System.out.println("s3:"+s3); System.out.println("---------"); //方式 4 String s4 = "hello"; System.out.println("s4:"+s4); } }
方法名&返回值 | 描述 |
---|---|
int length () | 获取长度 |
String trim () | 去除字符串两端空白 |
boolean startsWith (String prefix) | 是否以指定内容开头 |
boolean endsWith (String suffix) | 是否以指定内容结尾 |
boolean contains (CharSequence s) | 判断当前字符串是否包含指定字符串 //CharSequence 是 String 的接口,表示字符序列 |
boolean equals (String str) | 判断当前字符串是否与指定内容相等 |
boolean equalsIgnoreCase (String str) | 判断当前字符串是否与指定内容相等。忽略大小写 |
boolean isEmpty () | 判断当前字符串是否为空。true 表示空 |
String toUpperCase () | 将字母转换成大写,若是是大写则不变 |
String toLowerCase () | 将字母转换成小写,若是是小写则不变 |
String substring (int start) | 截取从 start 索引开始到最后的子字符串 |
String substring (int start,int end) | 截取指定位置的子字符串。start:开始索引(包含)。end:结束索引(不包含) |
char[] toCharArray () | 字符串变为 字符数组 |
char charAt (int index) | 返回指定索引处的字符 |
int indexOf (String ch) | 返回指定字符串在此字符串中第一次出现处的索引。找到就返回索引,找不到就返回-1 |
int indexOf (String ch,int xx) | 从索引 xx 开始查找, 返回指定字符串在此字符串中第一次出现处的索引,找到就返回索引,找不到就返回-1 |
String replace (char oldChar,char newChar) | 使用 new 替换全部的 old,并返回新字符串 |
String toString () | 返回字符串自己 |
int compareTo (String str) | 比较两个字符串的前后大小顺序。返回:正数、0、负数。 |
String[] split (String x) | 以指定字符串 X 为参照,切割字符串,返回字符串数组。 |
下面的需求所对应的方法,你们本身动手在 API 中查找(就在上面),并进行方法使用。数组
字符串是特殊的引用类型,由于真正的字符串数据在常量池中。设计
常量池中的每个字符串都是常量,一旦生成,不可改变。code
String str1 = "hello"; String str2 = "hello"; //值为true //说明str1和str2中保存的常量池地址是同一个 System.out.println(str1==str2);
String str1 = new String("hello"); String str2 = "hello"; //值为false //说明str1和str2中保存的常量池地址是不一样的 System.out.println(str1==str2);
String str1 = "hello"; String str2 = "hello Java"; //值为false //说明str1和str2中保存的常量池地址是不一样的 System.out.println(str1==str2);
字符串的特殊保存方式,是为了提升运行速度,节约内存空间而设计; 因此咱们不用 = = 进行字符串的比较,由于比较的仅是地址,无心义, 咱们使用 equals 方法比较两个字符串值