黑马程序员技术交流社区

标题: 练习题 第四题 四种解法 [打印本页]

作者: asd1164935710    时间: 2018-1-23 21:25
标题: 练习题 第四题 四种解法

import java.util.Arrays;
import java.util.Scanner;

public class Test4 {
        public static void main(String[] args) {
                Scanner scanner = new Scanner(System.in);
                System.out.println("请输入原字符串:");
                String scrStr = scanner.nextLine();
                System.out.println("请输入要删除的字符串:");
                String delStr = scanner.nextLine();
                Str(scrStr, delStr);
                Str2(scrStr, delStr);
                Str3(scrStr,delStr);
                Str4(scrStr, delStr);

               
        }
        public static void Str(String scrStr ,String delStr){
                int count = 0;
                int index = 0;
                String teString = scrStr;
                while((index = scrStr.indexOf(delStr))!=-1){
                        count++;
                scrStr =scrStr.substring(index+delStr.length()); ;
        }
                String s2 = delStr.substring(2);
                String [] aStrings = teString.split(delStr);
                StringBuilder sBuilder = new StringBuilder();
                for (int i = 0; i < aStrings.length; i++) {
                        sBuilder.append(aStrings[i]);
                }
                String string = new String(sBuilder);
                String str1 = "";
                if (string.contains(delStr.substring(2))){       
                String str = string.replace(delStr.substring(2), "");
                str1 = str.replace(delStr.substring(0,2), "");
                count++;
                }
                if (string.contains(delStr.substring(0,1))){
                String str2 = str1.replace(delStr.substring(0,1), "");
                System.out.println("源字符串中总共包含:"+count+" 个");
                System.out.println("删除"+delStr+"后的字符串为");
                System.out.println(str2);
        }
        }
               
        public static void Str2(String scrStr ,String delStr) {
                StringBuilder stringBuilder = new StringBuilder(scrStr);
                int count =0;
                for (int i = 0; i < stringBuilder.length(); i++) {
                        if (stringBuilder.indexOf(delStr,i)==i) {
                                count++;
                                stringBuilder.delete(i,i+delStr.length());
                                i-=delStr.length();
                        }
                }
                String rString = stringBuilder.toString();
                System.out.println("源字符中总共有"+count+"个"+delStr);
                System.out.println("删除后的字符为:"+rString);
}

        public static void Str3(String scrStr ,String delStr){
                        int count=0;//计数器
                        String newS;//声明一个新字符串
                        while(true) {
                                newS=scrStr.replace(delStr,"");//替换所有delstr为空 生成新字符串放进新字符串 里。
                                int n=(scrStr.length()-newS.length())/delStr.length();//用源字符串 减去新字符串 算出delstr被减的个数,在除以delst的长度  就等于减的次数
                                count+=n;//依次累加次数。
                                scrStr=newS;//在吧新字符串赋值进源数组。
                                if(!newS.contains(delStr)) {
                                        break;
                                }
                        }
                        System.out.println("源字符串中总共包含:"+count+"个 "+delStr+" 删除"+delStr+"后的字符串为:" +newS);

        }
        public static void Str4(String scrStr ,String delStr) {
                int count =0;
                while(scrStr.contains(delStr)){
                        scrStr=scrStr.replaceFirst(delStr, "");
                        count++;
                }
                System.out.println("源字符串中总共包含:"+count+"个 "+delStr+" 删除"+delStr+"后的字符串为:" +scrStr);
        }
}


作者: 1414225997    时间: 2018-1-24 16:56
继续努力哦~
作者: 渝小妹    时间: 2018-1-25 09:00
学无止境   路还很长  加油哦
作者: xiongliu    时间: 2018-1-26 15:17

作者: wuwangshan    时间: 2018-1-26 21:40
学习使你进步,
作者: 渝小妹    时间: 2018-1-27 08:58
温故而知新    加油哦  
作者: 重庆中心    时间: 2018-1-27 14:29
厉害了 四种解法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2