从标准输入获取多行文本,行数自行指定,输入要替换的字符串,将所有的目标字符串替换成新的字符串,并按行输出新的多行文本,并显示总共替换的次数,如果文本中不存在目标字符串,显示-1
要点1:输入多行字符串(行数自定)
要点2:输入被替换的字符串
要点3:输入替换成的新字符串
要点4:按行输出新字符串和替换次数,不存在返回-1
package Problems.C0315;
import java.util.*;
public class test3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("输入字符串行数:");
int n = input.nextInt();
input.nextLine();//加这一行抵代回车键
System.out.println("请输入" + n + "行字符串:");
String[] str = new String[n];
for (int i = 0; i < n; i++) {
str[i] = input.nextLine();//string类型的输入
}
System.out.print("请输入被替换的字符串:");
String rep=input.nextLine();
System.out.print("请输入要替换成的字符串:");
String fina=input.nextLine();
int cnt=0;
for(int j=0;j<n;j++){
//判断第1行字符串
for(int i=0 ; i + rep.length() <= str[j].length() ; i++){//不加i,length长度没变化,跳不出循环
if(str[j].substring( i , rep.length() + i ).equals( rep ) ){//判断各个位置的字符串与被替换字符串是否相同,相同的话替换且次数加1
str[j]=str[j].replaceFirst(rep,fina); //只写str[i].replace(rep,fina)不会改变本字符串,需要重新赋值
cnt++; //题目要计算次数,所以只能用replacefirst,可以多次替换
}
}
}
System.out.println("替换完的字符串为:");
for(int i=0;i<n;i++){
System.out.println(str[i]);
}
if(cnt!=0){
System.out.println("替换次数为:"+cnt);}
else{ System.out.println("不存在目标字符串,返回-1"); }
}
}
注意:replace等函数的用法
运行: