字符串的几种实现方法

package cn.itcast.object;
/*
需求1:自己实现trim方法

需求2:获取上传的文件名    "D:\\20171123\\day12\\Demo1.java"

需求3:将字符串对象中的字符反序

需求4:求一个子串在整串中出现的次数

*/
public class Demo2 {

    public static void main(String[] args) {
        String str = "      南京邮电大学            ";
        //System.out.println(myTrim(str));
        str = "D:\\20171123\\day12\\Demo1.java";
        //getFileName(str);
    
        str = "新中国好";
        String newStr = reverse(str);
        //System.out.println(newStr);
        
        str = "abcjavaabcjabaabcjjabc";
        getCount(str,"abc");
    }
    
    //求一个子串在整串中出现的次数
    public static void getCount(String str,String target){
        int count = 0;    //用于记录出现的次数
        int fromIndex = 0;   //记录从哪个索引值开始寻找目标子串
        while((fromIndex = str.indexOf(target, fromIndex))!=-1){   //如果indexof方法返回的不是-1,那么就是已经找到了目标元素
            count++;
            fromIndex = fromIndex + target.length();
        }
        System.out.println("出现的次数:"+count);
    }
    
    
    //将字符串对象中的字符反序
    public static String reverse(String str){
        char[] arr = str.toCharArray();
        for(int startIndex = 0,endIndex = arr.length-1;startIndex<endIndex;startIndex++,endIndex--){
            char temp = arr[startIndex];
            arr[startIndex]=arr[endIndex];
            arr[endIndex] = temp;
        }
        return new String(arr);   //使用字符数组构建一个字符串
    }
    
    //获取上传的文件名    "D:\\20171123\\day12\\Demo1.java"
    public static void getFileName(String str){
        int index = str.lastIndexOf("\\");
        String fileName = str.substring(index+1);
        System.out.println("文件名是:"+fileName);
    }
    
    
    //需求1:自己实现trim方法
    public static String myTrim(String str){
        char[] arr = str.toCharArray();     //先转换成字符数组

       //定义两个变量记录开始与结束的索引值

        int startIndex = 0;

        int endIndex = arr.length-1;
        while(true){        //确定开始的索引值
            if(arr[startIndex]==' '){
                startIndex++;
            }else{
                break;
            }
        }
        
        while(true){           //确定结束的索引值
            if(arr[endIndex]==' '){
                endIndex--;
            }else{
                break;
            }
        }
        return str.substring(startIndex,endIndex+1);       //截取子串返回
    }
    
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值