JAVA进阶教学之(String类的常用方法)

接下来我们进入的学习章程,就是可以通过查阅帮助文档进行实际的应有

1.

charcharAt(int index)

返回指定索引的 char价值。

代码示例:

public class StringTest04 {
    public static void main(String[] args) {
        //String中常用的方法
        //“中国人”是一个字符串String对象,只要是对象就能点.调用
        char c="中国人".charAt(1);
        System.out.println(c);//国
    }


}

 

 

2.

intcompareTo(String anotherString)

比较两个字符串的字典。

 代码示例:

public class StringTest04 {
    public static void main(String[] args) {

        //int compareTo(String anotherString)
        int result="abc".compareTo("abc");
        System.out.println(result);//0(前后相等) 例子:10-10=0

        int result2="abc".compareTo("abcd");
        System.out.println(result2);//-1

        int result3="abcd".compareTo("abce");
        System.out.println(result3);//-1 8-9=-1

        int result4="abce".compareTo("abcd");
        System.out.println(result4);//1(前大后小)  9-8=1

        //原理:是在字典数字中逐个进行比较,并不是累加起来再进行比较
        System.out.println("xyz".compareTo("yxz"));//-1

    }


}

 

 

3.

booleancontains(CharSequence s)

如果并且只有当此字符串包含指定的字符序列的字符串值,则返回真值。

代码实例:

public class StringTest04 {
    public static void main(String[] args) {
        //判断前面的字符串中是否包含后面的子字符串
        System.out.println("helloworld.java".contains(".java"));
        System.out.println("www.baidu.com".contains("baidu"));

    }


}

 

 

4.

 

booleanstartsWith(String prefix)

测试这个字符串是否以指定的前缀开始。

代码演示:

public class StringTest04 {
    public static void main(String[] args) {
        Boolean b="fdafadfdsgdsgdcdcdcd".startsWith("f");
        System.out.println(b);

        Boolean b2="fdafadfdsgdsgdcdcdcd".startsWith("d");
        System.out.println(b2);
    }


}

 

 

 

5.

booleanendsWith(String suffix)

测试如果这个字符串以指定的后缀结束。

代码实例:

public class StringTest04 {
    public static void main(String[] args) {
        //判断当前字符串是否是以某个字符串结尾
        System.out.println("test.txt".endsWith("txt"));
        System.out.println("test.txt".endsWith("aaa"));

    }


}

 

老杜的教学的436集第3分钟的时候有讲解源码

思考一个问题:equals方法和compareTo这两个方法的功能一样,有什么区别呢?

答案:功能很类似,但是equals只能看出是否相等;但是compareTo不仅可以看出是否相等,还可  以       比较大小

 

 

6.

booleanequals(Object anObject)

将此字符串与指定的对象比较。 

实例演示:

public class StringTest04 {
    public static void main(String[] args) {
        System.out.println("abc".equals("abc"));

    }


}

 

 

7.

 

booleanequalsIgnoreCase(String anotherString)

比较这 String到另一个 String,忽略大小写的考虑。

代码演示:

public class StringTest04 {
    public static void main(String[] args) {
        System.out.println("Abc".equalsIgnoreCase("abc"));

    }


}

 

 

8.

 

byte[]getBytes()

String编码成一个序列使用平台的默认字符集字节,结果存放到一个新的字节数组。

实例演示:(疑问:abcdef是字符串,字符串转成字节数组后,为什么会从a变成97)

public class StringTest04 {
    public static void main(String[] args) {
       byte[] bytes= "abcdef".getBytes();
        for (int i = 0; i <bytes.length; i++) {
            System.out.println(bytes[i]);
        }
    }


}

 

 

9.

intlastIndexOf(String str, int fromIndex)

返回此字符串的指定子字符串中最后出现在索引,搜索后从指定索引处开始。

代码演示:

public class StringTest04 {
    public static void main(String[] args) {
        System.out.println("dakhfkajsfasfasfasfasfa".lastIndexOf("sfa"));
        System.out.println("asdakjhfajks".lastIndexOf("s"));
    }


}

 

 

 

 

​​​​​​​10.

intindexOf(String str)

返回指数在这个字符串指定的子字符串中第一个出现的下标。

代码演示:

public class StringTest04 {
    public static void main(String[] args) {
        System.out.println("abcsdhkahfkashfjashf".indexOf("h"));
    }


}

 

 

 

​​​​​​​11.

booleanisEmpty()

返回 true如果,如果, length()0,底层代码调用的是length()方法

代码演示:

public class StringTest04 {
    public static void main(String[] args) {
        System.out.println("a".isEmpty());
        System.out.println("".isEmpty());
    }


}

 

​​​​​​​

 

12.

intlength()

返回此字符串的长度。

注意:

判断数组长度和判断字符串长度不一样

原因:

判断数组长度是length属性 arr.length

判断字符串长度是length()方法 "aaa".length()

代码演示:

public class StringTest04 {
    public static void main(String[] args) {
        int[] arr={1,2,3,4,5};

        System.out.println(arr.length);
        System.out.println("aaa".length());

    }


}

 

 

​​​​​​​​​​​​​​

13.

Stringreplace(CharSequence target, CharSequence replacement)

每个子串替换该字符串指定的文本替换序列靶序列匹配的文字。

代码演示:

public class StringTest04 {
    public static void main(String[] args) {
        String s="http://www/baidu.com".replace("http" ,
                "https");
        System.out.println(s);
    }


}

 

 

 

​​​​​​​14.

String[]split(String regex)

将此字符串在给定的 regular expression拆分。

代码演示:

public class StringTest04 {
    public static void main(String[] args) {
        String[] s="2021/3/9".split("/");
        for (int i = 0; i <s.length; i++) {
            System.out.println(s[i]);
        }
    }


}

 

 

​​​​​​​15.

Stringsubstring(int beginIndex)

返回一个字符串,这个字符串的子串,截取字符串内容。

代码演示:

public class StringTest04 {
    public static void main(String[] args) {
        String s="www.baidu.com".substring(4);
        System.out.println(s);
    }


}

 

 

​​​​​​​

 

16.

Stringsubstring(int beginIndex, int endIndex)

返回一个字符串,这个字符串的子串。

代码演示:

public class StringTest04 {
    public static void main(String[] args) {
        String s="www.baidu.com".substring(4,9);
        System.out.println(s);
    }


}

注意:beginIndex起始位置(包括此位置)

           endIndex结束位置(不包括此位置)

 

 

 

​​​​​​​17.

char[]toCharArray()

将此字符串转换为一个新的字符数组。

代码演示:

public class StringTest04 {
    public static void main(String[] args) {

        char[] chars="我是人".toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.println(chars[i]);
        }
    }


}

 

 

​​​​​​​

 

18.

StringtoLowerCase()

转小写

StringtoUpperCase()

转大写

代码演示:

public class StringTest04 {
    public static void main(String[] args) {
        System.out.println("FHAJKSFHAzxcmnz".toLowerCase());
        System.out.println("FHAJKSFHAzxcmnz".toUpperCase());
    }


}

 

 

 

​​​​​​​19.

Stringtrim()

返回一个字符串,它的值是字符串,任何前导和尾随空格删除,删除字符串前后留白。

代码演示:

public class StringTest04 {
    public static void main(String[] args) {
        String s="     fakjsfhakjsf    ".trim();
        String s2="     fakjsfhakjsf    ";
        String s3="     fakjsfh      akjsf    ";
        System.out.println(s);
        System.out.println(s2);
        System.out.println(s3);
    }


}

 

 

 

20.

这几个方法是静态方法,说明是经常使用的方法,直接用类名进行调用即可

作用:将 非字符串 转换成 “字符串”

 

代码演示:

public class StringTest04 {
    public static void main(String[] args) {
        String s=String.valueOf(100);
        String s2=String.valueOf(3.14);
        String s3=String.valueOf(true);
        String s4=String.valueOf(new Customer2());
        System.out.println(s);
        System.out.println(s2);
        System.out.println(s3);
        System.out.println(s4);

    }


}
class Customer2{
    @Override
    public String toString() {
        return "我是VIP顾客";
    }
}

结果:

 

 

提问:以前一直强调System.out.println(引用.toStirng);

.toString可以省略不写,自动调用toString 方法

 

分析:(此段是伪代码)

System.out.println(100);
System.out.println(3.14);
System.out.println(true);

Object obj=new Object();
System.out.println(obj)

顺着println按住ctrl点进去,进入println的源码

再按住ctrl点击valueOf的源码

发现,底层调用的确实的toString方法,因此我们可以直接省略不写toString方法在System.out.println();方法中可以省略

 

结论:

本质上System.out.println() 这个方法在输出任何数据的时候都是先转换成字符串,再输出

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值