详解java中的String类和String的常见方法

一.String类的理解和创建对象

(1).概念:

String对象用于保存字符串(字符序列),字符串常量对象是用双引号括起来的字符序列,例如“你好”,"123"等。字符串中的每个字符都占两个字节。

(2).String类常用的构造器

Stirng  s1=new String();

String s2=new String(String origina);

String s3=new String(char[] a);//将一个字符数组转化为字符串

String s4=new String(char[]a,int startIndex,int count)

//将字符数组a中从下标为startInxex开始,截取count个字符放入字符串中

 (3).创建Stirng对象的两种方式

a.直接赋值:Stirng s1="abcdef";

b.调用构造器:String s2=new String("abcdef");

两种创建对象的区别:

直接赋值:先从常量池中查看是否有“abcdef”数据空间,如果有,直接执行,如果没有再创建空间,s最终指向的是常量池中的空间。

 观察String的源代码可知,字符串存放在value数组中,而这个数组是final的,所以字符串不可修改。

s1和s2在内存中的存放形式: 

 两种形式的比较

public class Main {
    public static void main(String[] args) {
        String s1=new String("abcdef");
        String s2="abcdef";
        //s1指向堆中的空间,s2指向常量池的空间,二者地址不相同
        System.out.println(s1==s2);//false
        //s1和s2指向的内容相同
        System.out.println(s1.equals(s2));//true
        //s.intern()方法最终返回的是常量池中的地址
        System.out.println(s1.intern()==s2);//true
        
    }
}

二.String类的常见方法

1.equals  区分大小写,判断内容是否相等

2.equalslgnoreCase 忽略大小写的判断内容是否相等

3.length  获取字符的个数,字符串的长度

4.indexOf 获取字符在字符串中第1次出现的索引,索引从0开始,如果找不到,返回-1

5.lastlndexOf 获取字符在字符串中最后1次

出现的索引,索引从0开始,如找不到,返回-1

6.substring 截取指定范围的子串

7.trim 去前后空格

8.charAt:获取某索引处的字符,注意不能使用Str[index] 这种方式

9.toUpperCase将字符串中的字符大写
10.toLowerCase将字符串中的内容小写
11.concat字符串后面连接一个字符串
12.replace 替换字符串中的字符
13.split 分割字符串,对于某些分割字符
14.compareTo 比比较两个字符串的大小

15.toCharArray 转换成字符数组

16.format 格式字符串, %s 字符串 %c 字符 %d 整型 %.2f 浮点型

public class Main {
    public static void main(String[] args) {
        //equals和equalsIgnoreCase
        String s1="abc";
        String s2="aBc";
        System.out.println(s1.equals(s2));//false
        System.out.println(s1.equalsIgnoreCase(s2));//true
        //length
        System.out.println(s1.length());//3
        //indexOf和lastindexOf
        String s3="abcdacd";
        System.out.println(s3.indexOf('a'));//0
        System.out.println(s3.lastIndexOf('a'));//4
        //substring
        System.out.println(s3.substring(2,4));//cd
        //trim
        String s4="  abcde  ";
        System.out.println(s4.trim());//abcde
        //charAt()
        String s5="123abc";
        System.out.println(s5.charAt(2));//3
        //toUpperCase和toLowerCase
        String s6="aBc";
        System.out.println(s6.toUpperCase());//ABC
        System.out.println(s6.toLowerCase());//abc
        //concat
        System.out.println(s6.concat("def"));//aBcdef
        //replace
        System.out.println(s6.replace('B','b'));//abc
        //compareTo
        String s7="abc";
        System.out.println(s6.compareTo(s7));//-32('b'-'B'的差值)
        //toCharArry
        char a[]=s7.toCharArray();
        //format
        System.out.println();
        String s8="学生%s的成绩为%d分";
        System.out.println(String.format(s8, "小明",100));//学生小明的成绩为100分
        
    }
}
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值