全栈学习之后端基础 String类

本文详细介绍了使用Java进行字符串操作的方法,包括截取、替换、去除特定字符、统计字符频率等实用技巧。并通过实例展示了如何查找子串及其位置,以及统计字符串中各字符的出现次数。

笔记转载一个博客

原文地址原文地址

代码示例

method1代表几个小题
1、从abcdefg中获取1-4位字符串
2、检查abcdefg中没有bcd
3、将形如a,b,c,e,最后一个,去掉
4、替换abcedfgaaa中ab替换成bcd
剩下三个方法代表三个大题
1、给定一个由数字组成的字符串,如:“1239586838923173478943890234092”,统计出每个数字出现的次数
2、给定一个字符串,判断该字符串中是否包含某个子串.如果包含,求出子串的所有出现位置.
如:"abcd23abc34bcd"中,"bc"子串的出现位置为: 1,7,11.字符串和子串均由用户输入
3、给定一个字符串,请输出该字符串由哪些字符组成,每个字符出现几次?

public class Test {
    public static void main(String[] args) {
        Scanner s= new Scanner(System.in);
        Test test = new Test();
        //test.method1();
        //统计数字出现的次数
        System.out.println("请输入一串数字:");
        String number = s.next();
        test.count(number);
        //查找子串出现的位置
        System.out.println("请输入母串:");
        String parent = s.next();
        System.out.println("请输入子串:");
        String child = s.next();
        test.search(parent,child);
        //给定一个字符串,请输出该字符串由哪些字符组成,每个字符出现几次?
        System.out.println("请输入一个字符串:");
        String string = s.next();
        test.method_noname(string);
    }
    public void method_noname(String string){
        char c_arr[]=new char[100];
        int c_index = 0;
        int n_arr[]=new int[100];
        int n_index = 0;
        while (!string.equals("")){
            int count = 0;
            int index = -1;
            c_arr[c_index]  = string.charAt(0);
            count++;
            index = string.indexOf(c_arr[c_index]+"",1);
            while (index!=-1){
                count++;
                index = string.indexOf(c_arr[c_index]+"",index+1);
            }
            n_arr[n_index++] = count;
            string = string.replaceAll(c_arr[c_index]+"","");
            c_index++;
        }

        for (int i = 0; i < c_index; i++) {
            System.out.println(c_arr[i]+"出现的次数为:"+n_arr[i]);
        }
    }
    public void search(String parent,String child){
        int index = -1;
        int arr[] = new int[100];
        int i =0;
        index = parent.indexOf(child+"",0);
        while (index != -1){
            arr[i++] = index;
            index = parent.indexOf(child+"",index+1);
        }
        System.out.print(child+"出现的位置有:");
        for (int j = 0; j < i; j++) {
            System.out.print(arr[j]+" ");
        }
        System.out.println();
    }
    public void count(String tmp){
        int count = 0;
        int index = -1;
        int result[] = new int[10];
        for (int i = 0; i < 10; i++) {
            index = tmp.indexOf(i+"",0);
            //System.out.println(index);
            while (index != -1){
                count++;
                index = tmp.indexOf(i+"",index+1);
            }
            result[i]=count;
            count = 0;
        }
        for (int i = 0; i < result.length; i++) {
            if(result[i]>0){
                System.out.print(i+"出现的次数:"+result[i]+" ");
            }
        }
    }
    public void method1(){
        String s = "abcdefg";
        System.out.println("s:"+s);
        //截取前四位
        System.out.println(s.substring(0,4));
        //判断是否有bcd
        if(s.indexOf("bcd")!=-1){
            System.out.println("字符串中有bcd");
        }
        s="abcdefgaaa";
        System.out.println("s:"+s);
        //替换
        s = s.replaceAll("ab","bcd");
        System.out.println("s:"+s);
        //去掉最后一个逗号
        s="a,b,c,e,";
        System.out.println("s:"+s);
        s = s.substring(0,s.lastIndexOf(","));
        System.out.println("s:"+s);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值