String类
概述
字符串是常量,创建之后不可改变
字符串字面值存储在字符池中,可以共享,内存分为栈,堆,方法区,字符池就在方法区里面,
字符池使用类似于整数缓冲区,也是可以进行共享,但是不是提前加载好的,是需要赋值创建的
String s = "Hello";产生一个对象,在字符串池中
String s = new String("Hello");产生两个对象,堆、池各存储一个
方法
length()
public int length():返回字符串的长度
(空格也算一个字符)
String s = "java"; System.out.println(s.length());
charAt(int index)
public char charAt(int index):根据下标获取字符
从0开始
String s = "java"; System.out.println(s.charAt(3));
contains(String str)
public boolean contains(String str):判断当前字符中是否包含str
String s = "java"; System.out.println(s.contains("ja")); true
toCharArray()
public char[] toCharArray():将字符串转换为数组
String s = "java,java.java"; System.out.println(s.toCharArray());
indexof() lastindexof()
public int indexof(String str):查找str首次出现的下标,存在,则返回该下标;不存在,则返回-1;
public int indexof(String str,int i):从第i个下标,开始查找,存在,则返回下标,不存在,则返回-1;
public int lastIndexof(String str);查找字符串在当前字符串中最后一次出现的下标索引
String s = "java"; System.out.println(s.indexof("java")); System.out.println(s.indexof("java",3)); System.out.println(s.lastindexof("java")); 0 5 10
trim()
public string trim():去掉字符串前后的空格
toUpperCase() toLowerCase()
public string toUpperCase():将小写转成为大写,public string toLowerCase():将大写转成为小写
endWith(String str) startWith(String str)
public boolean endWith(String str);判断字符串是否以str结尾
public boolean startWith(String str);判断字符串是否以str开头
replace(char oldChar char newChar)
public String replace(char oldChar char newChar);将旧字符串替换成新字符串
替换某个字符或者字符串
Stirng s = "java真好用啊java"; System.out.println(s.replace("java","php")); "php真好用啊php"
split(String str)
public String[] split(String str):根据str做拆分
String say = "java is the best programing language,java xiang"; String[] arr = say.split(" ");//用空格拆分 String[] arr = say.split("[ ,]");//用空格或,拆分 String[] arr = say.split("[ ,]+");//表示空格和,可以连续出现两个 System.out.println(arr.length); for(String string : arr){ System.out.println(string); } 8 //空格和,都分割了 java is the best programing language java xiang
equals(String str)
String类中的equals()已经重写,和Object类中的equals()不一样,Object类中的equals()是比较两个对象的地址
而String类中的equals()是比较属性是否相同
equalsIgnoreCase(String str),忽略大小写的比较
compare()
比较大小
比较的是字符在ASCII表中的位置
返回值是下标差值
String s3 = "abc"; String s4 = "xyz"; System.out.println(s3.compare(s4)); -23
String s3 = "abc"; String s4 = "ayzdad"; System.out.println(s3.compare(s4)); -23
String s3 = "abc"; String s4 = "abcxyz"; System.out.println(s3.compare(s4)); -3