String 类代表字符串。Java序中的所有字符串字面值都作为此类的实例实现。字符串是常量,它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。
1、String类常用构造器如下
1.1、String(),初始化一个新创建的 String对象,使其表示一个空字符序列""。
new String();
1.2、String(String original),初始化一个新的 String 对象,使其表示一个与参数相同的字符序列
new String("String");
1.3、String(byte[] bytes),通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String
new String("Freedom".getBytes(Charset.forName("UTF-8")));
1.4、String(byte[] bytes, Charset charset),通过使用指定的 charset 解码指定的 byte 数组
new String("Freedom".getBytes(Charset.forName("GBK")),Charset.forName("GBK"));
1.5、String(byte[] bytes, String charsetName),通过使用指定的 charset 解码指定的 byte 数组
new String("Freedom".getBytes(Charset.forName("GBK")),"GBK");
1.6、String(byte[] bytes, int offset, int length),截取offset(索引)开始的length长度 byte数组,通过默认字符集解码
new String("Freedom".getBytes(Charset.forName("UTF-8")),1,6);
1.7、String(byte[] bytes, int offset, int length, Charset charset),截取offset(索引)开始的length长度 byte数组,通过指定的 charset解码
new String("Freedom".getBytes(Charset.forName("UTF-8")),0,6,Charset.forName("UTF-8"));
1.8、String(byte[] bytes, int offset, int length, String charsetName),截取offset(索引)开始的length长度 byte数组,通过指定的 charset解码
new String("Freedom".getBytes(Charset.forName("UTF-8")),0,6,"UTF-8");
1.9、String(char[] value),拼接字符串数组
new String(new char[]{'S','t','r','i','n','g'});
1.10、String(char[] value, int offset, int count),拼接字符串数组,从offset(索引)开始的count长度
字符串数组
new String(new char[]{'S','t','r','i','n','g'},0,4);
2、String类常用判断方法如下
2.1、equals,比较字符串的内容是否相同,区分大小写
"string".equals("string");
2.2、equalsIgnoreCase,比较字符串的内容是否相同,忽略大小写
"string".equalsIgnoreCase("string");
2.3、contains,判断字符串中是否包含给定字符串
"string".contains("s");
2.4、startsWith,判断字符串是否以给定字符串开头
"string".startsWith("s");
2.5、endsWith,判断字符串是否以给定字符串结尾
"string".endsWith("g");
2.6、isEmpty,判断字符串是否为空字符串""
"string".isEmpty();
3、String类常用获取方法如下
3.1、获取字符串的长度,length()
"string".length();
3.2、获取指定索引位置的字符,charAt(index)
"string".charAt(5);
3.3、返回指定字符在此字符串中第一次出现处的索引,indexOf(String),从左向右
"string".indexOf('s');
3.4、返回子字符在此字符串中第一次出现处的索引,indexOf(String,index),从左向右从指定索引开始
"string".indexOf('ri',5);
3.5、返回子字符在此字符串中第一次出现处的索引,lastIndexOf(String),从右向左
"string".lastIndexOf('str');
3.6、返回指定字符在此字符串中第一次出现处的索引,lastIndexOf(String,index),从右向左从指定索引开始
"string".lastIndexOf('i',5);
3.7、substring(index),从指定位置截取字符串,默认到结尾
"string".substring(3);
3.8、substring(startindex,endindex),从指定位置开始到指定位置结束截取字符串
"string".substring(2, 5);
4、String类常用转换方法如下
4.1、getBytes(Charset charset),把字符串通过字符集转换为字节数组,参数类型为Charset
"String".getBytes(Charset.forName("UTF-8"));
4.2、getBytes(String charsetName),把字符串通过字符集转换为字节数组,需要抛出错误
"String".getBytes("UTF-8");
4.3、toCharArray,将字符串转换为字符数组
"String".toCharArray();
4.4、valueOf(char[]),将字符数组转换成对应的字符串
String.valueOf(new char[]{'S','t','r','i','n','g'});
4.5、valueOf(int),把传入的变量转成字符串
String.valueOf(10);
4.6、toLowerCase,将所有的字符转换成小写
"String".toLowerCase();
4.7、toUpperCase,将所有的字符转换成大写
"String".toUpperCase();
4.8、concat,拼接字符串
"Str".concat("ing");
5、String类其它常用方法如下
5.1、替换,返回替换后的字符串;如果没有被替换的字符,返回原字符串,replace
"String".replace("tring", "TRING");
5.2、trim,去除前后空格,不能去除中间空格
" String ".trim();
5.3、按照码表值(Unicode)比较两个字符串的大小,从左到右按照字符所在位置比较,一直比较到不同字符的位数
"A".compareTo("Z");
5.4、按照码表值(Unicode)比较两个字符串的大小,不考虑大小写,从左到右按照字符所在位置比较,一直比较到不同字符的位数
"A".compareToIgnoreCase("Z");
5.5、split(String),根据给定字符拆分字符串,返回数组
String[] strings = "S,t,r,i,n,g".split(",");