A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© huangyibao 初级黑马   /  2018-4-16 12:46  /  1164 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当时不知道indexOf()的用法,所以用自己的思维实现了一下,不知道有没错,请大家指教下!当然有现成的方法,直接调用是最好的,不过联系下逻辑思维能力也是不错的。

package com.itheima8;

import java.util.Scanner;

/*第四题: 分析以下需求,并用代码实现(利用StringBuilder的delete方法完成)
1.键盘录入一个源字符串由字符串变量scrStr接收
2.键盘录入一个要删除的字符串由字符串变量delStr接收
3.要求
        删除该字scrStr符串中的所有delStr字符串(最终的字符串中不能包含delStr),要求打印删除后的结果以及删除了几个delStr字符串
4.代码运行打印格式:
        请输入源字符串:java woaijava,i like jajavava i enjoy java
        请输入要删除的字符串:java
        控制台输出结果:源字符串中总共包含:5 个 java 删除java后的字符串为: woai,i like  i enjoy*/

public class HomeWork4 {
        public static void main(String[] args) {
                DeleteString(inputReStr(),inputDeStr());
        }
       
        public static String inputReStr(){
                System.out.println("请输入源字符串:");
                Scanner sc = new Scanner(System.in);
                return sc.nextLine();
        }
       
        public static String inputDeStr(){
                System.out.println("请输入要删除的字符串:");
                Scanner sc = new Scanner(System.in);
                return sc.nextLine();
        }
       
        public static void DeleteString(String mainStr, String delStr){
                boolean flag = true;
                if(mainStr.length() < delStr.length()){
                        flag = false;
                        System.out.println("输入有误,请重新输入!");
                        DeleteString(inputReStr(),inputDeStr());
                }
                else{
                        StringBuilder sbMainStrB = new StringBuilder(mainStr);
                        int count = 0;
                        for(int i = 0 ; i <= sbMainStrB.length() - delStr.length(); i ++){
                                String strTemp = sbMainStrB.substring(i, i + delStr.length()).toString();
                                if(strTemp.equals(delStr)){
                                        sbMainStrB.delete(i, i + delStr.length());
                                        i = 0;     //排除删除后又形成和删除字符串一样的字符串
                                        count ++;
                                }       
                        }
                        if((sbMainStrB.toString()).equals(delStr)){ //判断当字符串被删到长度与需删除的字符串相等时两字符串是否相等
                                sbMainStrB.delete(0, delStr.length());
                                count ++;
                        }       
                        if(flag || count != 0) //保证输入错误时不输出0
                                System.out.println("源字符串中总共包含:" + count + "个 " + delStr + " 删除" + delStr +"后的字符串为: " + sbMainStrB);
                }
        }
}

1 个回复

倒序浏览
逻辑思维你有的,以后该有的都会有
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马