超详细的 Java String类使用

String类概述

String表示字符串,所有的字符串字面值都是常量(如"abc",“hello”),也是字符串的对象。

字符串对象有两种形式

  • String s1=“abc” 这就是一个字符串对象
  • String s2=new String(“abc”) 这也是一个字符串对象

两种创建对象的区别,看图
在这里插入图片描述

String s1="abc";//s1变量,存储的是"abc"在常量池中的地址值
String s2=new String("abc");//s2变量,存储的是new String("abc")在堆内存中的地址值

这里写图片描述

String的构造方法

String提供了多种创建对象的方式,举例如下

//创建一个空的String对象,等价于""
String s1=new String();
//创建一个String对象,值为"abc"
String s2=new String("abc");
//创建一个String对象,值为"abc"。
byte[] bs={97,98,99}
String s3=new String(bs);
//创建一个String对象,值为"abcdefg"
char chs={'a','b','c''d','e','f','g'};
String s4=new String(chs);
//创建一个String对象,值为"bcdef"
String s5=new String(chs,1,6);

String的方法API

对于字符串的操作有很多,如获取字符串的长度、判断字符串以什么开头、判断字符串是否包含子串等等。

获取功能

public int length()  
    获取字符串的长度
public char charAt(int index)  
    获取字符串中指定位置的字符
public String substring(int start,int end) 
    截取字符串中从start开始,到end结束的子字符串
public String substring(int start) 
    截取字符串中从start开始,到末尾的子字符串
public int indexOf(String str) 
    获取字符串中参数字符串的索引

替换和分割

public String replaceAll(String regex,String news)  
    使用正则表达式替换字符串
public String[] split(String regex) 
    使用正则表达式切割字符串

判断功能

public boolean equals(Object s)
    比较字符串的内容是否相等
public boolean equalsIgnoreCase(String s)
    比较字符串的内容是否相等,忽略大小写的
public boolean startsWith(String str)
    判断字符串以什么开头
public boolean endsWith(String str)
    判断字符串以什么结束

##String相关练习题

1. 练习1

/*
需求:计算字符串中大写字母、小写字母、数字字符出现的次数
*/
public class Test1{
    public static void main(String[] args){
        String str="aabbccddeeff";
        int small=0;//小写字母
        int big=0//大写字母
        int num=0;//数字字符
        //遍历字符串中的字符
        for(int i=0;i<str.length();i++){
            char ch=str.charAt(i);
            if(ch>='a'&&ch<='z'){
                small++;
            }
        }
        System.out.println("大写字母格式:"+big);
        System.out.println("小写字母格式:"+small);
        System.out.println("数字字符格式:"+num);
    }
}

2. 练习2

/*
需求:获取字符串中"java"出现的次数
分析: 
1. 使用indexOf查找字符串中"java"第一次出现的索引index
2. 如果index!=-1就表示找到一个"java",同时计数器自增
3. 使用substring截取从index后面的字符串,继承查找。
4. 直到index==-1,就说明后面没有"java"可以查找了
*/
public class Test2{
    public static void main(String[] args){
        String str="hellworldjavaadsfbjavahhheejavammmjavahegjavahello";
        //计数器
        int count=0;
        int index;//"java"的索引
        while((index=str.indexOf("java"))!=-1){
            count++;
            str=str.substring(index+"java".length());
        }
        System.out.println("java出现的次数为:"+count);
    }
}

3. 练习3

/*
需求: 把字符串中首字母变为大写,其他的变为小写
1. 获取首字母,使用toUpperCase变为大写
2. 获取其他字符,使用toLowerCase变为小写
3. 把步骤1和步骤2,拼接起来即可
*/
public class Test3{
    public static void main(String[] args){
    	String str="hello,welcome To Java";
        //获取首字母,变为大写
        String s1=str.substring(0,1).toUpperCase();
        String s2=str.substring(1).toLowerCase();
        String s=s1+s2;
        //打印结果
        System.out.println(s); 
    } 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值