String类
- java中所有被双引号引起来的都是String类型的,
- 一旦创建,不可改变,
- 存储于方法区的字符串常量池,已创建的字符串一直存在于字符串常量池中,再次使用这个字符串时,不会再新建一个了,而是直接使用已存在的这个字符串。(无论何种方式创建的字符串都是如此)
- 字符串常量池中的一个字符串也是一个字符串对象
String的构造方法
- String(byte[] bytes)
- byte[]数组会将其中的数字,转换成对应的字符
- 例如:byte[] bytes={97,98,99}
String s1=new String(bytes)//输出abc
- String(byte[] bytes,int offset,int length)
- 第二个参数为起始的位置
- 第三个参数表示字符串的长度
- 例:String s1=new String(bytes,1,2) //输出bc
-
String(char[] chars)
与1类似 -
String(char[] chars,int offset,int length)
与2类似
还有两个最常用的
String s="";
String s=new String("");
字符串中常用的方法
1.char charAt(int index)
-用法: char c = "中国人".charAt(1)------>结果:'国'
-作用:返回字符串中第index个字符。
2.int compareTo()
- 作用:字符串之间比较大小的方法(不用> <比较),大于为1,小于为-1,等于为0
- 与equals区别:equals只能比较两个字符串是否相等,而compareTo不但能比较是否相等,还能判断谁大谁小
- boolean contains()
- 用法: str1.contains(str2)
- 作用: 判断str1是否包含str2
- boolean endsWith()
- 用法:str1.endsWith(str2)
- 作用:判断str1是否以str2结尾
- boolean equalsIgnoreCase()
- 用法:str1.equalsIgnoreCase(str2)
- 作用:比较两个字符串是否相等,且忽略大小写
- byte[] getBytes()
- 作用:将字符串转换成byte[]
- int indexOf()
- 用法:"adcdefg".indexOf("def")------>结果为3
- 作用:判断某个子字符串在当前字符串中第一次出现的索引
- boolean isEmpty()
- 作用:判断某个字符串是否为空串(""),不是null
- int length()
- 作用:得到字符串的长度
- 得到数组的长度是调用数组的length属性,得到字符串长度是调用字符串的length()方法
- int lastIndexOf()
- 作用:判断某个字符串在其父串中最后一次出现的索引
- String replace(charSequent 被替换的,charSequent 替换的)
- charSequent是String的父接口
- 用后面一个参数 替换字符串中含有的所有前一个参数字符串(替换所有)
- String[] split();
- 用法:"1998-04-10".split("-")------->结果返回一个字符数组String[] s={"1998","04","10"}
以-为分隔符,将字符串拆分
- boolean startsWith()
- 作用:判断当前字符串是否以某个字符串开始
- String subString(int beginIndex)
- "1234567".subString(3)----->4567
- 从第3个索引开始截取字符串
- 参数是起始下标
- String subString(int beginIndex,int endIndex)
- "1234567".subString(3,6)---->456
- [beginIndex,endIndex) 左闭右开,开始包含,结束不包含
- char[] toCharArry()
- 作用:字符串转换为一个char类型的数组
-
String toLowerCase()/toUpperCase()
转换成小写/大写 -
String trim()
去除字符串前后空白(中间的空白不去) -
String valueOf()
- String的静态方法,直接用String.valueOf()调用
- 将参数中的非字符串,转换为字符串