(1)从键盘循环录入录入一个字符串,输入"end"表示结束
(2)定义一个方法 public Object[] deleteSubString(String str1,String str2) {
}
(3)方法功能描述:从str1中删除所有的str2,并返回删除后的结果,返回结果为Object[]数组
- 该数组的第一个元素为删除所有的str2后的最终的字符串
- 该数组的第二个元素为删除的str2的个数
代码实现:
import java.util.Scanner;
public class StringExcise4 {
public static void main(String[] args) {
StringExcise4 se = new StringExcise4(); //创建自己的对象,调用非静态方法
StringBuilder sb = new StringBuilder();
String s2 = "asd";
@SuppressWarnings("resource")
String s1 = new Scanner(System.in).next();
do{
sb.append(s1);
}while(sb.toString().indexOf("end")<0);
sb.delete(s1.length()-"end".length(),s1.length());//删除字符串s里的“end”
Object[] oj = se.deleteSubString(sb.toString(), s2);
System.out.println("字符串删除后为:" + oj[0]);
System.out.println("删除次数为:" + oj[1]);
String s = "123asdfhjfasdgfkjasd";//测试数组s
Object[] o = se.deleteSubString(s,s2);
System.out.println("字符串删除后为:" + o[0]);
System.out.println("删除次数为:" + o[1]);
}
public Object[] deleteSubString(String str1,String str2) {
int delCount = 0;
Object[] obj = new Object[2];
StringBuilder sb = new StringBuilder(str1);
while(true){
int index = sb.indexOf(str2);//查找str2在str1中的下标
if(index == -1)//当index等于-1时查询结束
break;
sb.delete(index, index + str2.length());//删除str1中的str2字符
delCount++;
}
if(delCount > 0){
obj[0] = sb.toString();
obj[1] = delCount;
}
else {
System.out.println("输入的数组中不包含已有的数组!");
obj[0] = obj[1] = -1;//不存在,返回-1
}
return obj;
}
}
输出结果: