String类中的构造方法
char[] cs={'今','天','好','闷'};
String a=new String(cs);
System.out.println(a);//今天好闷
String b=new String(cs, 1, 2);
System.out.println(b);//天好
byte[] bs={97,98,99,100,101};
String c=new String(bs);
System.out.println(c);//abcde
String d=new String(bs,2,3);
System.out.println(d);//cde
int[] is={97,98,99,100,101};
String e=new String(is,2,3);
System.out.println(e);//cde
//解决乱码(多敲几遍加深印象)
String a1=new String(a.getBytes("ISO-8859-1"),"utf-8");
常用的成员方法:
- int length()
//数组中.length是属性,字符串中.length()是方法
String a="abcdef";
int length=a.length();
System.out.println(length);
- int indexOf(可变参数);
获取某个字符或者字符串在原字符串中第一次出现的位置
//注意,当查询的值在字符串中不存在的话,则返回-1
1.int indexOf(char c)// 返回c字符在字符串第一次出现的下标
2.int indexOf(String c)// 返回字符串c在字符串第一次出现的下标
3.int indexOf(String c,int fromIndex)// 返回字符串c在字符串在formIndex(包含)后第一次出现的下标
4.int indexOf(char c,int fromIndex)// 返回字符c在字符串在formIndex(包含)后第一次出现的下标
String a="abcdeabcfabc";
//int indexOf(char c)// 返回c字符在字符串第一次出现的下标
char c='c';
int i=a.indexOf(c);
System.out.println(i);//2
//int indexOf(String c)// 返回字符串c在字符串第一次出现的下标
int i1=a.indexOf("abc");
System.out.println(i1);//0
//int indexOf(String c,int fromIndex)// 返回字符串c在字符串在formIndex(包含)后第一次出现的下标
int i2=a.indexOf("abc",6);
System.out.println(i2);//9
//int indexOf(char c,int fromIndex)// 返回字符c在字符串在formIndex(包含)后第一次出现的下标
3.int lastIndexOf(可变参数)
获取某个字符或者字符串在原字符串中最后一次出现的位置
注意,当查询的值在字符串中不存在的话,则返回-1
1.int lastIndexOf(char c);//判断字符c在字符串中最后一次出现的下标
2.int lastIndexOf(String str);//判断字符串str在字符串中最后一次出现的下标
3.int lastIndexOf(char ch, int fromIndex);//判断字符c在字符串从第fromIndex(包含)之前中最后一次出现的下标
4.int lastIndexOf(String str, int fromIndex);//判断字符串str在字符串从第fromIndex(包含)之前中最后一次出现的下标
String a="abcdeabcfabc";
//int lastIndexOf(char c);//判断字符c在字符串中最后一次出现的下标
int i=a.lastIndexOf('a');
System.out.println(i);//9
//int lastIndexOf(String str);//判断字符串str在字符串中最后一次出现的下标
System.out.println(a.lastIndexOf("abc"));//9
//int lastIndexOf(char ch, int fromIndex);//判断字符c在字符串从第fromIndex(包含)之前中最后一次出现的下标
System.out.println(a.lastIndexOf('c',7));
//int lastIndexOf(String str, int fromIndex);//判断字符串str在字符串从第fromIndex(包含)之前中最后一次出现的下标
4.char charAt(int index);
获取某个位置上的字符
1.char charAt(int index) 返回字符串中第index位上的字符
String a="abcdeabcfabc";
//char charAt(int index) 返回字符串中第index位上的字符
char c=a.charAt(2);
System.out.println(c=='c');//true
5.boolean contains(String str)
判断字符串中是否包含某个子字符串
contains(CharSequence s)
当且仅当此字符串包含指定的 char 值序列(等同于字符串)时,返回 true
String a="abcdeabcfabc";
boolean b=a.contains("xxx");
System.out.println(b);//false
6.boolean isEmpty();
判断字符串中是否为空
String a="abcdeabcfabc";
System.out.println(a.isEmpty());//false
String b="";
System.out.println(b.isEmpty());//true
String c=null;
//System.out.println(c.isEmpty());//报错
System.out.println(c==null);//true
7.boolean startWith(String str);
判断字符串是否是以str为开始的
String a="abcdeabcfabc";
boolean b=a.startsWith("abc");
System.out.println(b);//true
8.boolean endWith(String str);
判断字符串是否是以某个后缀开始的
String a="Animal.class";
boolean b=a.endsWith(".java");
System.out.println(b);//false
9.boolean equals(String tr)
判断字符串的内容是否相等
//当字符串和常量进行比较
//错误写法
str.equals("张三");
//正确写法
"张三".equals(str)
10.boolean equalsIgnoreCase(String str);
忽略大小写相等比较
String a="Animal.class";
boolean b=a.equalsIgnoreCase("ANIMAL.CLASS");
boolean b1="ANIMAL.CLASS".equals(a);
System.out.println(b);//true
System.out.println(b1);//false
- String replace(String oldStr,String newStr);
将字符串中的oldStr替换成newStr,然后得到一个新字符串
1. String replace(String oldStr,String newStr);
2. String replace(char oldStr,char newStr);
String a="abc12312abc145abc";
String b=a.replace("abc", "fff");
System.out.println(b);//fff12312fff145fff
12.String substring(int beginIndex, int endIndex)
截取
1.String substring(int beginIndex, int endIndex)
//将字符串中第beginIndex(包含)到endIndex(不包含)截取成一个新的字符串
2..String substring(int beginIndex)
//将字符串中第beginIndex(包含)到最后截取成一个新的字符串
String a="abc12312abc145abc";
String b=a.substring(3, 7);
System.out.println(b);//1231
String c=a.substring(8);
System.out.println(c);//abc145abc
13.String trim();
去除前面和尾部的空格
String password="123456 ";//多了个空格
System.out.println("123456".equals(password));//false
String b=password.trim();
System.out.println("123456".equals(b));//true
14.int compareTo(String anotherString)
比较
/*
int compareTo(String anotherString)
按字典顺序比较两个字符串。
int compareToIgnoreCase(String str)
按字典顺序比较两个字符串,不考虑大小写。
*/
/*
如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。
如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。
如果这两个字符串相等,则结果为 0
*/
int num1 = "abc".compareTo("def");
System.out.println(num1);//-3
int num2 = "def".compareTo("abc");
System.out.println(num2);//3
int num3 = "abc".compareTo("abc");
System.out.println(num3);
15.String concat(String str)
拼接
/*
String concat(String str)
将指定字符串连接到此字符串的结尾。
*/
//注意:在String类中,但凡返回值是String类型的方法,生成的都是一个新的字符串,跟原来的字符串没有关系
String a="你好";
String b="我好";
String c=a.concat(b);
System.out.println(c);//你好我好
System.out.println(c==a);//false
16.String[] split(String str);
拆分
//根据str将字符串拆分成字符串数组
String a="123dabd456dccc";
String[] bs=a.split("d");
//split可以根据正则表达式切割
for (int i = 0; i < bs.length; i++) {
System.out.println(bs[i]);
}
17.char[] toCharArray();
将字符串转换为字符数组
String a="abc";
char[] bs=a.toCharArray();
//split可以根据正则表达式切割
for (int i = 0; i < bs.length; i++) {
System.out.println(bs[i]);
}
18.byte[] getBytes();
将字符串根据字符编码方式转换为字节数组
String a="今天";
byte[] bs=a.getBytes();
for (int i = 0; i < bs.length; i++) {
System.out.println(bs[i]);
}
//-28,-69,-118,-27,-92,-87