一、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
String s = "今天下雨吗?";String a = "今天下雨吗?";System.out.println(s.equals(a));//trueSystem.out.println(s.equals(new String("今天下雨吗?")));//trueSystem.out.println(s==new String("今天下雨吗?"));//false
5 字符串截取 substring()
substring (int beginIndex) | 一个参数表示从参数位置截取到最后 |
substring(int beginIndex, int endIndex) | 两个参数表示从第一个参数位置截取到第二个参数位置,不包含第二参数的索引 |
String s = "0123456";System.out.println(s.substring(2));//23456System.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;//方式1System.out.println("-100".equals(String.valueOf(a)));//方式2System.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);