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

题目解析

输出指定对用户的回答

解题思路

正则 匹配 替换 输出

代码

import java.io.*;
import java.math.*;
import java.util.*;

public class Main
{

	public static void main(String[] args)
	{
		int n = sc.nextInt();
		sc.nextLine();

		while (n-- > 0)
		{
			String str = sc.nextLine();

			String s = "";
			for (int i = 0; i < str.length(); i++)
			{
				char a = str.charAt(i);
				if (a >= 'A' && a <= 'Z' && a != 'I')
					a = (char) (a - 'A' + 'a');
				s += a;
			}
//			去掉首位空格
			s = s.trim();

//			去掉中间多余空格
			s = s.replaceAll(" +", " ");

//			去掉标点符号前的多余空格
			s = s.replaceAll(" (\\W)", "$1");

//			? 改为 !
			s = s.replaceAll("\\?", "!");

//			预处理 将 can you 改为 A 
			s = s.replaceAll("\\b(can you)\\b", "A");

//			预处理 将 could you 改为 B
			s = s.replaceAll("\\b(could you)\\b", "B");

//			预处理 将 I 或 me 改为 C 
			s = s.replaceAll("\\b(I|me)\\b", "C");

//			输出原话
			out.println(str);

//			将 A 替换为 I can
			s = s.replace("A", "I can");

//			将 B 替换为 I could
			s = s.replace("B", "I could");

//			将 C 替换为 you
			s = s.replace("C", "you");

//			输出修改后的字符串
			out.println("AI: " + s);
		}

		out.flush();
		out.close();
	}

	static Scanner sc = new Scanner(System.in);
	static PrintWriter out = new PrintWriter(System.out);
}


trim

正则
正则

正则表达式在线测试


团体程序设计天梯赛-练习集-java

赞赏