目录

1 获取String的相关信息功能

2 String的判断功能

3 String字符中转换方法

4 常用方法

5 平时开发中常见问题


1 获取String的相关信息功能

1)length():获取该字符串长度

String str = "group-banner-top-";
        int length = str.length();
        System.out.println(length);

运行结果:17

2)charAt(int index):获取指定索引处字符

String str = "group-banner-top-";
        System.out.println(str.charAt(7));

运行结果:a

3)indexOf(String str):获取指定字符在该字符串第一次出现的位置

String str = "group-banner-top-";
        int index = str.indexOf("a");
        System.out.println(index);

运行结果:7

4)indexOf(String str, int fromIndex) 获取指定字符从某处开始第一次出现的位置

String str = "graap-banner-top-";
        int index = str.indexOf("a",5);
        System.out.println(index);

运行结果:7

5)substring(int beginIndex) 从beginIndex开始位置截取字符串

String str = "graap-banner-top-";
        String substring = str.substring(1);
        System.out.println(substring);

运行结果:raap-banner-top-

6)substring(int beginIndex, int endIndex) 从beginIndex开始,到endIndex结束截取字符串。包括start,不包括end

String str = "graap-banner-top-";
        String substring = str.substring(1,3);
        System.out.println(substring);

运行结果:ra

2 String的判断功能

1)equals(Object anObject):比较字符串内容是否相同

String str = "fghjkvja女大三你看看电视";
        System.out.println("fghjkvja女大三你看看电视".equals(str));
        System.out.println("hhhjjj".equals(str));

运行结果:true
false

2)equalsIgnoreCase(String anotherString) :比较字符串内容是否相同,忽略大小写

String str = "ffffff";
        System.out.println("FFFFFF".equalsIgnoreCase(str));

运行结果:true

3)startsWith(String prefix):判断字符串是否以指定的字符开头

String str = "fff白居寺fff";
        System.out.println(str.startsWith("fff"));

运行结果:true

4)startsWith(String prefix, int toffset):判断字符串是否以指定的字符开头,参数toffest指定从哪个下标开始

String str = "fff白居寺fff";
        System.out.println(str.startsWith("白",3));
        System.out.println(str.startsWith("白",4));

运行结果:true
false

5)endsWith(String suffix):判断字符串是否以指定的字符结尾

String str = "fff白居寺fff";
        System.out.println(str.endsWith("白"));

运行结果:false

6)isEmpty():判断字符串是否为空

String str = "";
        System.out.println(str.isEmpty());

运行结果:true

3 String字符中转换方法

1)String toLowerCase():将字符串转为小写

String str = "HDFNNCVNDK";
        System.out.println(str.toLowerCase());

运行结果:hdfnncvndk

2)String toUpperCase():将字符串转大写

String str = "kkskksfhdf";
        System.out.println(str.toUpperCase());

3)char[ ] toCharArray():将字符串转为字符数组

String str = "HDFNNCV把接口顶你个肺NDK";
        char[] chars = str.toCharArray();
        System.out.println(chars);

运行结果:HDFNNCV把接口顶你个肺NDK

4 常用方法

1)String trim():去除字符串两端的空格

String str = " kkskksfhdf ";
        System.out.println(str);
        System.out.println(str.trim());

运行结果: kkskksfhdf 
kkskksfhdf

2)CharSequence subSequence(int beginIndex, int endIndex):截取字符串指定位置组成一个新的字符串

String str = " kkskaaaaksfhdf ";
        System.out.println(str.subSequence(1,5));

运行结果:kksk

3) String replace(CharSequence target, CharSequence replacement)

String str = "kkskaaaaksfhdf";
        System.out.println(str.replace("a","o"));

运行结果:kkskooooksfhdf

4)String replaceAll(String regex, String replacement):用新的内容替换全部就内容

String str = "kkskaaaaksfhdf";
        System.out.println(str.replaceAll("a","o"));

运行结果:kkskooooksfhdf

5)String replaceFirst(String regex, String replacement):替换首个满足函数的内容

String str = "kkskaaaaksfhdf";
        System.out.println(str.replaceFirst("k","o"));

运行结果:okskaaaaksfhdf

注意:之前用replaceFirst的时候遇到了一些问题:特意写出来分享下:

想把22.22.02.23切割成2222.02.23的形式,就想到了replaceFirst这个方法,但是结果却出乎意料。

String str = "22.22.02.23";
 String s = str.replaceFirst(".", "");
 System.out.println(s);

运行结果:2.22.02.23

可以发现,它将我的第一个字符给切割了,并没有切割第一个.的字符。因为这个时候"."相当于元字符,匹配除“\n”和"\r"之外的任何单个字符。所以就把第一个字符切割了。

String str = "22.22.02.23";
        String s = str.replaceFirst("\\.", "");
        System.out.println(s);

运行结果:2222.02.23

6)lastIndexOf(String str):返回指定字符出现最后一次的下标

String str = "kkskaaaaksfhdf";
        System.out.println(str.lastIndexOf("k"));

运行结果:8

7)contains(CharSequence s):字符串中是否包含指定字符

String str = "kkskaaaaksfhdf";
        System.out.println(str.contains("aa"));

运行结果:true

8)String concat(String str):在原有字符串基础上加上指定字符串

String str = "大";
        System.out.println(str.concat("逼兜"));

运行结果:大逼兜

5 平时开发中常见问题

1)获取第一个“-”后面(前面)的所有字符

public static void main(String[] args) {
        String str = "group-banner-top-http://pic/test/20220225092606e0dc59c3ef8c915b8fbe9f99153b7ef9";
        //获取第一个"-"后面的所有字符串
        int index = str.indexOf("-");
        System.out.println("第一个字符下标:"+index);
        String after = str.substring(index+1);
        System.out.println("第一个-后面的字符:"+after);
        String before = str.substring(0,index);
        System.out.println("第一个-前面的字符:"+before);
    }

java 字符串 截取前两位 java截取指定字符串之前的_p2p

 其实获取第一个标识符的前面和后面的所有内容还是比较容易的。

2)获取第二个“-”后面的所有字符

public static void main(String[] args) {
    String str = "group-banner-top-http://pic/test/20220225092606e0dc59c3ef8c915b8fbe9f99153b7ef9";
    //获取第一个"-"后面的所有字符串
        int index = str.indexOf("-");
        System.out.println("第一个字符下标:"+index);
        String after = str.substring(str.indexOf("-",str.indexOf("-")+1)+1);
        System.out.println("第二个-后面的字符:"+after);
        String before = str.substring(0,str.indexOf("-",str.indexOf("-")+1));
        System.out.println("第三个-前面的字符:"+before);
    }

java 字符串 截取前两位 java截取指定字符串之前的_数据库_02

 获取第二个标识符后面的内容,只需要拿到第一个标识符的初始位置并且加1,它就会从后开始切割

2)获取第三个“-”后面的所有字符

public static void main(String[] args) {
    String str = "group-banner-top-http://pic/test/20220225092606e0dc59c3ef8c915b8fbe9f99153b7ef9";
    //获取第一个"-"后面的所有字符串
        int index = str.indexOf("-");
        System.out.println("第一个字符下标:"+index);
        String str1 = str.substring(index+1); //先切割一遍,使得字符串前面变的只有两个两个“-”,然后就可以用上一种获取第二个字符的方法了
        System.out.println("切割掉第一个‘-’和前面的字符串剩下的字符串为:"+str1);
        String after = str1.substring(str1.indexOf("-",str1.indexOf("-")+1)+1);
        System.out.println("第三个‘-’后面的字符:"+after);
        int length =  (str.length() - after.length()) - 1;
        String before1 = str.substring(0,length);
        System.out.println("第三个‘-’前面的字符:"+before1);
    }

java 字符串 截取前两位 java截取指定字符串之前的_java 字符串 截取前两位_03

 获取第三个标识符的时候,因为我们不清楚前面字符串的长度,所以只需要先切割一遍,再按照获取第二个标识符那样就好了