以下是一个Java程序,可以用于将输入文本中的敏感词替换成指定的字符串:
javaCopy codeimport java.util.*; public class ReplaceSensitiveWords { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 假设有以下敏感词 String[] sensitiveWords = {"敏感词1", "敏感词2", "敏感词3"}; System.out.print("请输入文本:"); String text = sc.nextLine(); // 将敏感词替换成指定字符串 for (String word : sensitiveWords) { text = text.replaceAll(word, "***"); } System.out.println("替换后的文本:" + text); } }
在该程序中,我们首先定义了一个包含敏感词的数组 sensitiveWords。然后,程序会从用户输入中获取一段文本,并使用 replaceAll() 方法将其中的敏感词替换成指定的字符串 "***"。最后,程序输出替换后的文本。
sensitiveWords
replaceAll()
"***"
这只是一个简单的示例程序,实际应用中可能需要考虑更多的情况,例如敏感词的匹配规则、替换字符串的内容等。
如果需要更加灵活和可扩展的敏感词替换功能,可以使用正则表达式。下面是一个示例代码,演示了如何使用正则表达式替换敏感词:
javaCopy codeimport java.util.*; import java.util.regex.*; public class ReplaceSensitiveWords { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 假设有以下敏感词 String[] sensitiveWords = {"敏感词1", "敏感词2", "敏感词3"}; System.out.print("请输入文本:"); String text = sc.nextLine(); // 使用正则表达式替换敏感词 Pattern pattern = Pattern.compile(String.join("|", sensitiveWords)); Matcher matcher = pattern.matcher(text); StringBuffer sb = new StringBuffer(); while (matcher.find()) { String word = matcher.group(); matcher.appendReplacement(sb, "***"); } matcher.appendTail(sb); System.out.println("替换后的文本:" + sb.toString()); } }
在该程序中,我们首先使用 String.join() 方法将敏感词数组中的词用 | 符号连接起来,形成一个正则表达式。然后,我们使用 Pattern 类的 compile() 方法编译正则表达式,并使用 Matcher 类的 matcher() 方法在文本中查找匹配项。在循环中,我们使用 Matcher 类的 appendReplacement() 方法将匹配到的敏感词替换成指定的字符串 "***",并将结果存入 StringBuffer 对象中。最后,我们使用 Matcher 类的 appendTail() 方法将剩余的文本添加到 StringBuffer 对象中,并输出替换后的文本。
String.join()
|
Pattern
compile()
Matcher
matcher()
appendReplacement()
StringBuffer
appendTail()
使用正则表达式进行敏感词替换具有更高的灵活性和可扩展性,可以更加准确地匹配敏感词,同时也可以自定义替换字符串的内容和格式。但需要注意的是,正则表达式的语法比较复杂,需要仔细理解和使用。
原文链接:codingdict.net