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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

两点水

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

分析以下需求,并用代码实现:
        (1)从键盘循环录入录入一个字符串,输入"end"表示结束
        (2)定义一个方法
                public Object[] deleteSubString(String str1,String str2) {
       
                }
        (3)方法功能描述:从str1中删除所有的str2,并返回删除后的结果,返回结果为Object[]数组
                * 该数组的第一个元素为删除所有的str2后的最终的字符串
                * 该数组的第二个元素为删除的str2的个数               

8 个回复

倒序浏览
请问str1是什么,str2是什么,题都没有说清楚
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
意思是说str1中包含str2的给删除吗?
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
18292907251 发表于 2017-10-2 09:10
请问str1是什么,str2是什么,题都没有说清楚

可以用包含函数判断是否包含,如果包含调用替换函数替换为空字符串
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
wheat 发表于 2017-10-2 22:51
可以用包含函数判断是否包含,如果包含调用替换函数替换为空字符串

我昨天做了一下只能做到返回这个str1和里面str2的个数,想来想去都没想到字符串有删除的方法吗
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
str2要定制一个int类型变量来统计数量,其它都是判断包含与否
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
回复 使用道具 举报
import java.util.Scanner;
//循环录入字符串没有写,只有方法
public class Test {

        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("输入一个字符串");
                String s1 = sc.nextLine();
                System.out.println("输入另一个字符串");
                String s2 = sc.nextLine();
               
                Object[] results = deleteSubString(s1, s2);
                System.out.println("处理后的字符串为" + results[0]);
                System.out.println("删除的个数为" + results[1]);
        }
       
        public static Object[] deleteSubString(String str1, String str2) {
                int count = 0;
                while(true) {
                        int indexOfSubString = str1.indexOf(str2);
                        if(indexOfSubString != -1) {
                                count++;
                                String s1 = str1.substring(0, indexOfSubString);
                                String s2 = str1.substring(indexOfSubString + str2.length());
                                str1 = s1 + s2;
                        }else {
                                break;
                        }
                }
                return new Object[]{str1, count};
        }

}
回复 使用道具 举报
//循环录入的话,写成这样?
public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                while(true) {
                        System.out.println("输入一个字符串");
                        String s1 = sc.nextLine();
                        if(s1.equals("end")) {
                                break;
                        }
                       
                        System.out.println("输入另一个字符串");
                        String s2 = sc.nextLine();
                        if(s1.equals("end")) {
                                break;
                        }
                       
                        Object[] results = deleteSubString(s1, s2);
                        System.out.println("处理后的字符串为" + results[0]);
                        System.out.println("删除的个数为" + results[1]);
                }
        }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马