JAVA 经典操作习题(2)

从标准输入获取多行文本,行数自行指定,输入要替换的字符串,将所有的目标字符串替换成新的字符串,并按行输出新的多行文本,并显示总共替换的次数,如果文本中不存在目标字符串,显示-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等函数的用法

 运行:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值