String常用方法
目录
=====序言=====
1. equals
2. equalsIgnoreCase
3. length
4. indexOf
5. lastIndexOf
6. substring
7. toUpperCase
8. toLowerCase
9. concat
10. replace
11. split
12. toCharArray
13. compareTo
14. format
序言
String类提供了许多方法供我们使用,这里只简单介绍几个常用的方法,下图是String的类图(未截取完)有兴趣的可以自行去查找
1. equals
String的equals方法重写了Object类的equals方法,使用效果如下:
// equals 比较内容是否相同,区分大小写
String str1 = "hello";
String str2 = "Hello";
System.out.println(str1.equals(str2));
//运行结果:false
2. equalsIgnoreCase
跟equals方法的使用效果差不多,不过对大小写没有要求,也就是说Hello和hello在该方法下是true的
// equalsIgnoreCase 忽略大小写的判断内容是否相等
String userName = "john";
if ("John".equalsIgnoreCase(userName)) {
System.out.println("Success");
} else {
System.out.println("Failure");
}
//运行结果:Failure
3. length()
length()获取字符串长度
// length 获取字符的个数,字符串的长度
String suerName = "zhangsan";
System.out.println(userName.length());
//运行结果:8
4. indexOf
获取字符在字符串对象中第一次出现的索引,索引从0开始,如果找不到,返回-1
// indexOf 获取字符在字符串对象中第一次出现的索引,索引从0开始,如果找不到,返回-1
String s1 = "asf!@##$%sdfjklh";
System.out.print(s1.indexOf("$"));
System.out.println(s1.indexOf("jkl"));
运行结果:7 12
5. lastIndexOf
获取字符在字符串中最后一次出现的索引,索引从0开始,如果找不到,返回-1
// lastIndexOf 获取字符在字符串中最后一次出现的索引,
//索引从0开始,如果找不到,返回-1
String s2 = "sdfsdlfkjsds";
System.out.println(s1.lastIndexOf("s"));
6. substring
截取指定范围的字符串,注意所截取的都是范围都是前闭后开
// substring 截取指定范围的字符串
String name = "hello,张三";
System.out.print(name.substring(6));//取该下标到之后所有的字符串(前闭后开)
System.out.print(" " + name.substring(1, 4));//就是截取到下标为4的字符,从下标1开始(前闭后开)
System.out.println(" " + name.substring(1, name.length()));
//运行结果:张三 ell ello,张三
7. toUpperCase
把字符串的字符都转成大写
// toUpperCase转换成大写
String s = "heLLo";
System.out.println(s.toUpperCase());
//运行结果:HELLO
8. toLowerCase
把字符串的字符都转换成小写
// toLowerCase转换成小写
String str8 = "HelLo";
System.out.println(str8.toLowerCase());
//运行结果:hello
9. concat
拼接字符串
// concat拼接字符串
String str9 = "宝玉";
str9 = str9.concat("林黛玉").concat("薛宝钗").concat("together");
System.out.println(str9);
//运行结果:宝玉林黛玉薛宝钗together
10. replace
替换字符串中的字符
// replace 替换字符串中的字符
String str10 = "宝玉 and 薛宝钗 薛宝钗 薛宝钗";
//在str10中,将所有的宝玉替换成薛宝钗
//注意:str10.replace() 方法执行后,返回的结果才是替换过的
//对str10没有影响 需要去引用 不赋值不影响
str10 = str10.replace("宝玉", "薛宝钗");//把字串所有的宝玉都替换成薛宝钗
System.out.println(str10);
//运行结果:薛宝钗 and 薛宝钗 薛宝钗 薛宝钗
11. split
具体效果如下代码:
// split 分割字符串,对于某些分割字符,我们需要 转义比如 | \\等
//1.以 , 为标准对 poem 进行分割,返回一个数组
//2.在对字符串进行分割时,如果有特殊字符,需要加入 转义符 \
String poem = "锄禾日当午,汗滴流下土,谁知盘中餐,粒粒皆辛苦";
String[] split = poem.split(",");
for (int i = 0; i < split.length; i++) {
System.out.println(split[i]);
}
/*运行结果:
锄禾日当午
汗滴流下土
谁知盘中餐
粒粒皆辛苦
*/
poem = "E:\\aaa\\bbb";
split = poem.split("\\\\");
for (int i = 0; i < split.length; i++) {
System.out.println(split[i]);
}
//注意:如果这里是两个\\ 则会报错(Illegal/unsupported escape sequence非法/不受支持的转义序列)
/*
运行结果:
E:
aaa
bbb
*/
12.toCharArray
转换成字符数组以及字符数组转换成String
// toCharArray 转换成字符数组
String str12 = "happy";
char[] chs = str12.toCharArray();
for (int i = 0; i < chs.length; i++) {
System.out.println(chs[i]);
}
//也可以把字符数组转成字符串 通过构造器
String str = new String(chs);
System.out.println(str);
//运行结果:
/*h
a
p
p
y
happy
*/
13. compareTo
使用效果如下代码:
// compareTo 比较两个字符串的大小,如果前者大
//则返回正数,后者大,则返回负数,如果相等,返回0
//(1)如果长度相同,并且每个字符也相同,就返回 0
//(2)如果长度相同或者不相同,但是在进行比较时,可以区分大小就返回 c1 - c2
//(3)如果前面的部分都相同,就返回 str1.len - str2.len
//区分大小写,b 和 B的大小不一样,根据ASCII表
String a = "jack";
String b = "jbck";
System.out.println(a.compareTo(b));
//运行结果:-1
14. format
使用效果如下代码:
// format 格式字符串
/*
* 占位符有:
* %s 字符串 %c 字符 %d 整型 %.2f浮点型
*/
String name = "john";
int age = 10;
double score = 98.3 / 3;
char gender = '男';
//将所有的信息都拼接在一个字符串
String info =
"我的名字是" + name + "年龄是" + age + ",成绩是" + score + "性别是" + gender + "。希望大家喜欢我!";
System.out.println(info);
//1. %s, %d, %.2f %c 称为占位符
//2.这些占位符由后面的变量来替换
String formatStr = "我的名字是%s年龄是%d,成绩是%.2f性别是%c。希望大家喜欢我!";
info = String.format(formatStr, name, age, score, gender);//这里也可以直接是字符串,可以不用引用
System.out.println(info);
//运行结果:我的名字是john年龄是10,成绩是32.766666666666666性别是男。希望大家喜欢我!
//我的名字是john年龄是10,成绩是32.77性别是男。希望大家喜欢我!
欢迎留言讨论~ ~ ~