黑马程序员技术交流社区

标题: 有一个有关String的基础班题不会做,请教各位大神. [打印本页]

作者: 两点水    时间: 2017-10-1 23:13
标题: 有一个有关String的基础班题不会做,请教各位大神.
分析以下需求,并用代码实现:
        (1)从键盘循环录入录入一个字符串,输入"end"表示结束
        (2)定义一个方法
                public Object[] deleteSubString(String str1,String str2) {
       
                }
        (3)方法功能描述:从str1中删除所有的str2,并返回删除后的结果,返回结果为Object[]数组
                * 该数组的第一个元素为删除所有的str2后的最终的字符串
                * 该数组的第二个元素为删除的str2的个数               
作者: 18292907251    时间: 2017-10-2 09:10
请问str1是什么,str2是什么,题都没有说清楚

作者: wheat    时间: 2017-10-2 22:48
意思是说str1中包含str2的给删除吗?

作者: wheat    时间: 2017-10-2 22:51
18292907251 发表于 2017-10-2 09:10
请问str1是什么,str2是什么,题都没有说清楚

可以用包含函数判断是否包含,如果包含调用替换函数替换为空字符串

作者: 18292907251    时间: 2017-10-3 08:27
wheat 发表于 2017-10-2 22:51
可以用包含函数判断是否包含,如果包含调用替换函数替换为空字符串

我昨天做了一下只能做到返回这个str1和里面str2的个数,想来想去都没想到字符串有删除的方法吗

作者: 多多酱    时间: 2017-10-3 16:33
str2要定制一个int类型变量来统计数量,其它都是判断包含与否

作者: IceLoveInFire丶    时间: 2017-10-3 23:58
题目好牛

作者: 321哈哈哈    时间: 2017-10-4 21:33
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};
        }

}
作者: 321哈哈哈    时间: 2017-10-4 21:43
//循环录入的话,写成这样?
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]);
                }
        }




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