实验十五字符串练习一

1.统计字符串出现的次数

第一步:获取输入的字符串和子串

我们需要使用Java提供的Scanner类来获取用户输入的字符串和子串。首先,我们需要创建一个Scanner对象,然后使用nextLine()方法来获取输入的字符串和子串。

第二步:查找子串在字符串中出现的位置

我们可以使用Java提供的String类的indexOf()方法来查找子串在字符串中出现的位置。这个方法返回子串在字符串中第一次出现的位置,如果子串没有在字符串中出现,则返回-1。我们可以使用一个while循环来遍历整个字符串,直到子串不再出现为止。具体代码如下:

int count = 0;    // 记录子串出现的次数
int index = str.indexOf(subStr);    // 查找子串第一次出现的位置
while (index != -1) {    // 如果子串还存在,则继续查找
    count++;    // 统计子串出现的次数
    index = str.indexOf(subStr, index + 1);    // 从上一次查找的下一个位置开始查找
}

这段代码将会初始化一个计数器count和查找起始位置index。然后,我们使用while循环来不断查找子串在字符串中出现的位置,直到子串不再出现为止。

在while循环中,我们使用indexOf()方法查找子串在字符串中的位置。如果找到了子串,则将count加1,并更新查找起始位置index。如果子串不存在,indexOf()方法将返回-1,这时while循环就会结束。

需要注意的是,在使用indexOf()方法时,我们需要指定第二个参数表示从哪个位置开始查找子串。在本例中,我们需要从上一次查找的位置的下一个位置开始查找,因此使用index + 1作为第二个参数。

 

第三步:输出子串在字符串中出现的次数 

最后,我们只需要输出子串在字符串中出现的次数即可

最后总代码如下 :


import java.util.Scanner;

public class demo1 {

    public static void main(String[] args) {
        Scanner nc = new Scanner(System.in);
        String str = nc.nextLine();
        // 匹配的子串在字符串中的下标
        int index = 0;
        // 计算出现的次数
        int count = 0;
        String findStr = nc.next();
        while ((index = str.indexOf(findStr, index)) != -1) {

            index += findStr.length();
            count++;
        }

        System.out.println(count);
    }

}

2.删除字符串: 

我们需要使用Java提供的Scanner类来获取用户输入的文本和指定的字符串。获取后,我们可以先使用lastIndexOf()方法查找指定字符串最后一次出现的位置,并将结果存储在一个变量中。然后,我们再使用replace()方法来删除指定字符串。

具体步骤如下:

第一步:获取输入的字符串和指定字符串

首先,我们创建一个Scanner对象,然后使用nextLine()方法获取用户输入的文本和指定的字符串。

第二步:查找指定字符串最后一次出现的位置

接下来,我们可以使用Java提供的String类的lastIndexOf()方法来查找指定字符串最后一次出现的位置。这个方法返回指定字符串在文本中最后一次出现的位置,如果指定字符串不存在则返回-1。

第三步:删除指定字符串

我们可以使用Java提供的String类的replace()方法来删除文本中所有指定字符串。这个方法会将文本中所有匹配指定字符串的部分替换成指定的字符串,如果不指定替换字符串则删除匹配的部分。

完整代码如下 :

import java.util.Scanner;

public class demo2 {
    public static void main(String[] args) {
        Scanner nc=new Scanner(System.in);
        int index=0;
        int count=0;
        String father=nc.nextLine();
        String son=nc.next();
        int a=father.lastIndexOf(son);


        father=   father.replace(son,"");
        System.out.println(father);
        System.out.println(a);




    }
}


3.判断aa字符是否在该字符串当中是否只出现一次 :

复用第一题代码,根据count的值来进行输出

1.如果count等于0,输出-1

2.如果count等于1,输出yes

3.如果不是以上情况,输出no

完整代码如下: 

import java.util.Scanner;

public class demo3 {
    public static void main(String[] args) {
        Scanner nc = new Scanner(System.in);
        String str = nc.nextLine();
        // 匹配的子串在字符串中的下标
        int index = 0;
        // 计算出现的次数
        int count = 0;
        String findStr = "aa";
        while ((index = str.indexOf(findStr, index)) != -1) {

            index += findStr.length();
            count++;
        }
        if(count==1){
            System.out.println("yes");
        }else if(count>1){
            System.out.println("no");
        }else {
            System.out.println(-1);
        }



    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值