(Java)——(PTA)L1-064 估值一亿的AI核心代码

前言

本博客是博主用于复习数据结构以及算法的博客,如果疏忽出现错误,还望各位指正。

 

L1-064 估值一亿的AI核心代码

L1-064 估值一亿的AI核心代码 (20分)(Java正则表达式)_javal1-064 估值一亿的ai核心代码 分数 20 全屏浏览题目 切换布局 作者 陈越 单位-CSDN博客

 参考的博主代码,我对其String cstr =""的+=操作,使用StringBuffer进行了优化,因为String类是个final类型,一经定义不能更改,+=操作每次都在创建新的String类,可以利用StringBuilder或StringBuffer优化。【有道云笔记】String、StringBuilder、StringBuffer 

83d46b9e6e4e4013b80d35acbd03235f.png

29d8989d766345209e8afe9036295a53.png

import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        String str;
        int n=Integer.parseInt(in.nextLine());
        for(int i=0;i<n;i++) {
            str=in.nextLine();//整行读入
            System.out.println(str);//先原样输出
            StringBuilder temp= new StringBuilder("");
            char[] chars=str.toCharArray();//字符串转数组
            for(int j=0;j<chars.length;j++)//所有大写英文字母变成小写,除了I
            {
                if(chars[j]>='A'&&chars[j]<='Z'&&chars[j]!='I') {
                    chars[j]+=32;
                }
                temp.append(chars[j]);
            }
            String cstr = temp.toString();
            //去掉首尾多余空格
            cstr=cstr.trim();
            //" +"至少1个" "——相邻单词间多个空格换成1个空格
            cstr=cstr.replaceAll(" +", " ");
            //去掉标点符号前面的空格。标点符号默认为除了大小写英文字母和数字和下划线之外的符号。\W就是与任何非单词字符匹配
            cstr=cstr.replaceAll(" (\\W)", "$1");
            //将所有?替换为!
            cstr=cstr.replaceAll("\\?", "!");
            //★如果can you两边是非字的(即要么是空格要么是除了大小写字母和数字和下划线)就替换成A,B的替换同理,如果是独立的I或者me就替换成C
            cstr=cstr.replaceAll("\\bcan you\\b","A");
            cstr=cstr.replaceAll("\\bcould you\\b","B");
            cstr=cstr.replaceAll("\\b(I|me)\\b","C");
            //先换成ABC避免改动之后把另外一个又改了
            cstr=cstr.replaceAll("A","I can");
            cstr=cstr.replaceAll("B","I could");
            cstr=cstr.replaceAll("C","you");
            System.out.println("AI: "+cstr);
        }
    }
}

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值