一、String 常见的一些方法
1 获取字符串长度length()
String s = "今天下雨吗?";
System.out.println(s.length());
2 获取字符串指定位置的字符值,返回值类型是Char
String s = "今天下雨吗?";
System.out.println(s.charAt(2));
//下
3.返回.字符串中某字符串首次出现的索引值,如果不存在返回-1
String s = "今天下雨吗?";
System.out.println(s.indexOf("下雨"));
//2
<1>跳过两个字符去找"45"所在位置
String s = "450123456456";
System.out.println(s.indexOf("45",2));
//6
<2>字符串中最后一次出现“45”的索引值lastIndexOf()
String s = "450123456456";
System.out.println(s.lastIndexOf("45"));
//9
4 比较字符串的值是否相等 equals
(1)equals()函数
String s = "今天下雨吗?";
String a = "今天下雨吗?";
System.out.println(s.equals(a));
//true
System.out.println(s.equals(new String("今天下雨吗?")));
//true
System.out.println(s==new String("今天下雨吗?"));
//false
(2) equalsIgnoreCase函数
作用:
equalsIgnoreCase函数和equals函数相同的是都是比较两个字符串的值是否相等,区别是equalsIgnoreCase函数会忽略大小写。
public boolean equalsIgnoreCase(String anotherString) | 比较字符串的值 |
equalsIgnoreCase函数的例子
public static void main(String[] args) {
String str1 = "Hello";
String str2 = "hello";
String str3 = "HELLO";
String str4 = "HeLLo";
String str5 = "world";
// 使用 equalsIgnoreCase 方法进行比较
System.out.println(str1.equalsIgnoreCase(str2)); // 输出: true
System.out.println(str1.equalsIgnoreCase(str3)); // 输出: true
System.out.println(str1.equalsIgnoreCase(str4)); // 输出: true
System.out.println(str1.equalsIgnoreCase(str5)); // 输出: false
}
5 字符串截取 substring()
substring (int beginIndex) | 一个参数表示从参数位置截取到最后 |
substring(int beginIndex, int endIndex) | 两个参数表示从第一个参数位置截取到第二个参数位置,不包含第二参数的索引 |
String s = "0123456";
System.out.println(s.substring(2));
//23456
System.out.println(s.substring(3,5));
//34
6 startWith() 某字符串是否以某子串开头的
String s = "450123456456";
System.out.println(s.startsWith("45"));
//true
7 endWith() 某字符串是否以某子串结尾的
String s = "450123456456";
System.out.println(s.endsWith("5"));
//false
8 按照某字符进行分片
String s = "450123456456";
for(String str:s.split("45")){
System.out.println(str);
}
输出结果:
0123
6
6
9 去开头结尾空格 (空格 \t \r \n)trim()
String s = " 4501234 56456 \n";
System.out.println(s.trim());
输出结果: 4501234 56456
10 把字符串转化为字符数组
String s = " 4501234 56456 ";
char[] cs = s.toCharArray();
for (char c:cs){
System.out.print(c+",");
}
输出: ,4,5,0,1,2,3,4, ,5,6,4,5,6, ,
11 是否包含某个子串 contains("")
String s = " 4501234 56456 ";
System.out.println(s.contains("45"));
//true
二、String字符串的遍历方式
1.使用charAt方法。
2.将字符串转化为字符数组后输出。
String s = " 4501234 56456 ";
for(int i = 0;i<s.length();i++){
System.out.print(s.charAt(i)+",");
}
System.out.println();
for(char c:s.toCharArray()){
System.out.print(c+",");
}
输出内容:
,4,5,0,1,2,3,4, ,5,6,4,5,6, ,
,4,5,0,1,2,3,4, ,5,6,4,5,6, ,
三、字符串的拼接(join,format)
1.使用数组作为参数
String[] arr = {"爱潜水的乌贼","清泉流响","猫腻","清泉流响","远瞳","老鹰吃小鸡","耳根"};
String rest = String.join("、",arr);
System.out.println("起点白金网文作家有:"+"等人");
输出结果:
起点白金网文作家有:爱潜水的乌贼、清泉流响、猫腻、清泉流响、远瞳、老鹰吃小鸡、耳根等人
2.使用可变参数
String rest = String.join("、","爱潜水的乌贼","清泉流响","猫腻","清泉流响","远瞳","老鹰吃小鸡","耳根");
System.out.println("起点白金网文作家有:"+rest+"等人");
3.字符串格式化输出 format()
String[] arr = {"诡秘之主","宿命之环",
"庆余年","不科学御兽","黎明之剑","万族之劫","求魔"};
int[] nums = {1,2,3,4,5,6,7};
double[] dnums = {75.11,78.22,80.33,90.44,78.55,93.44,82.33};
for(int i = 0;i<7;i++){
System.out.println(String.format("《%s》是我看过的第%d本网文," +
"其中男读者占%.2f%s",arr[i],nums[i],dnums[i],"%"));
}
《诡秘之主》是我看过的第1本网文,其中男读者占75.11%
《宿命之环》是我看过的第2本网文,其中男读者占78.22%
《庆余年》是我看过的第3本网文,其中男读者占80.33%
《不科学御兽》是我看过的第4本网文,其中男读者占90.44%
《黎明之剑》是我看过的第5本网文,其中男读者占78.55%
《万族之劫》是我看过的第6本网文,其中男读者占93.44%
《求魔》是我看过的第7本网文,其中男读者占82.33%
四、字符串和数字之间的相互转化
1.字符串和整型
字符串转整型Integer.valueOf(s)
String s = "-100";
int num = Integer.valueOf(s);
int sum = num + 101;
System.out.println("Result is: "+sum);
整型转字符型
两种方式1.String.valueOf(),2.拼接一个空字符串
int a = -100;
//方式1
System.out.println("-100".equals(String.valueOf(a)));
//方式2
System.out.println("-100".equals(a+""));
2.字符串和浮点型
字符串转浮点Float.valueOf(s)
float a = -100.123f;
float num = Float.valueOf(a);
float b = 200;
System.out.println(num+b);
//99.877
浮点型转字符串
两种方式1.String.valueOf(),2.拼接一个空字符串
3.字符串和double
字符串转double Double.valueOf(s)
double a = -200.123;
double num = Double.valueOf(a);
float b = 200;
System.out.println(num+b);
//-0.12299999999999045
五、替换字符串
1.replace() 方法
String ip="\"诡秘之主\",\"宿命之环\",\"庆余年\"," +
"\"不科学御兽\",\"黎明之剑\",\"万族之劫\",\"求魔\"";
String ret=ip.replace('\"', '|');
String ret1=ip.replace("\",", "》");
ret1=ret1.replace("\"", "《");
System.out.println("原字符串:"+ip);
System.out.println("替换结果:"+ret);
System.out.println("替换结果:"+ret1);
输出结果:
原字符串:"诡秘之主","宿命之环","庆余年","不科学御兽","黎明之剑","万族之劫","求魔"
替换结果:|诡秘之主|,|宿命之环|,|庆余年|,|不科学御兽|,|黎明之剑|,|万族之劫|,|求魔|
替换结果:《诡秘之主》《宿命之环》《庆余年》《不科学御兽》《黎明之剑》《万族之劫》《求魔《
2.replaceAll()方法使用正则表达式进行匹配
String s= "$AaBbCcDd,.$";
//replace()方法将“,” “.”替换成“#”
String ret=s.replace(",", "#").replace(".", "#");
//replaceAll()方法使用正则表达式进行匹配
//[\\,\\.\\$]匹配一个字符内容
//[\\,\\.\\$]+匹配多个字符内容
String ret1=s.replaceAll("[\\,\\.\\$]+", "#");
//[A-Z]+ 匹配多个大写字母
String ret2=s.replaceAll("[A-Z]+", "#");
//“\\."代表1个普通字符串内容,仅匹配"."
String ret3 = s.replaceAll("\\.","#");
// "."代表1个正则表达式,匹配任意字符
String ret4 = s.replaceAll(".","#");
System.out.println(s);
System.out.println(ret);
System.out.println(ret1);
System.out.println(ret2);
System.out.println(ret3);