字符串作业5:从字符串中删除指定子字符串
程序员文章站
2022-04-30 10:23:04
...
一、代码:
package task_06_String;
/**
(1)从键盘循环录入录入一个字符串,输入"end"表示结束
(2)定义一个方法 public Object[] deleteSubString(String str1,String str2) { }
(3)方法功能描述:从str1中删除所有的str2,并返回删除后的结果,返回结果为Object[]数组。
该数组的第一个元素为删除所有的str2后的最终的字符串
该数组的第二个元素为删除的str2的个数
*/
import java.util.Scanner;
public class DeleteSubString
{
/**
* @param str1 是进行被删除操作的字符串
* @param str2 是在str1中要删除的子字符串
* @return 一个Object[]数组:
该数组的第一个元素为删除所有的str2后的最终的字符串
该数组的第二个元素为删除的str2的个数
*/
public static Object[] deleteSubString(String str1,String str2) {
// 定义一个有两个元素的名字为resultObject类型的数组
Object[] result = new Object[2];
// 将str1中所有为str2的子字符串用空串代替,则实现将str1中的所有为str2的子字符串删除
String newStr = str1.replaceAll(str2, "");
// 计算删除的str2的个数
int deleteCount = (str1.length()-newStr.length())/str2.length();
// 将删除所有的str2后的最终的字符串和删除的str2的个数分别赋值给result数组元素并返回
result[0] = newStr;
result[1] = deleteCount;
return result;
}
// 接收并返回控制台输入的字符串
static String consoleInput(Scanner sc) {
String inputStr = null;
if(sc.hasNextLine()) {
inputStr = sc.nextLine();
}
return inputStr;
}
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
while(true) {
System.out.print("请输入字符串(退出请输入end):");
String inputStr = consoleInput(sc);
if(inputStr !=null && inputStr.equals("end")) {
System.out.println("程序已终止!");
break;
}
else {
System.out.print("请输入要删除的字符串(退出请输入end):");
String delStr = consoleInput(sc);
if(delStr !=null && delStr.equals("end")) {
System.out.println("程序已终止!");
break;
}
else {
Object[] result = new Object[2];
result = deleteSubString(inputStr,delStr);
System.out.println(inputStr+" 删除掉其中所有的 "+delStr+" 后最终的字符串为:"+result[0]);
System.out.println("删除的 "+delStr+" 的个数为:"+result[1]);
}
}
}
sc.close();
}
}
二、运行结果: