Java基础—消除敏感字并替换逻辑

简介: 在日常使用聊天软件或游戏交流时,当出现不文明词语会被”和谐“,那么这个逻辑是怎么实现的呢?本文展示如何用Java实现敏感字过滤并替换的逻辑代码。

Java代码

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class HeXieWenZi {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        List<String> list=new ArrayList<>();
        list.add("血腥");
        list.add("暴力");

        List<WenZi> list1=new ArrayList<>();
        for (int i=0;i<list.size();i++){
            WenZi wenZi=new WenZi();
            wenZi.setWenZi(list.get(i));
            wenZi.setIndex(list.get(i).length());
            list1.add(wenZi);
        }
        System.out.println("请输入你要执行的语句");
        String next = scanner.next();

        if(list.size()!=0){
            char[] c=next.toCharArray();
            for (int k=0;k<next.length();k++){
                for (int h=0;h<list1.size();h++){
                    char[] f=list1.get(h).getWenZi().toCharArray();
                    if (f[0]==(c[k])){
                        int index=0;
                        int start=k;
                        for (int j=0;j<list1.get(h).getIndex();j++){
                            if (c[start]==f[j]){
                                index++;
                                start++;
                            }
                        }
                        if (index==list1.get(h).getIndex()){
                            for (int l=0;l<list1.get(h).getIndex();l++){
                                c[k+l]='*';
                            }
                            k+=list1.get(h).getIndex()-1;
                        }
                    }
                }
            }
            System.out.println(c);
        }else {
            System.out.println(next);
        }
    }
}
class WenZi{

    public String getWenZi() {
        return wenZi;
    }

    public void setWenZi(String wenZi) {
        this.wenZi = wenZi;
    }

    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }

    private String wenZi;
    private int index;
}
目录
相关文章
|
3月前
|
搜索推荐 Java 索引
|
3月前
|
Java
【思维导图】JAVA网络编程思维升级:URL与URLConnection的逻辑梳理,助你一臂之力!
【思维导图】JAVA网络编程思维升级:URL与URLConnection的逻辑梳理,助你一臂之力!
56 1
|
3月前
|
搜索推荐 Java 索引
|
3月前
|
搜索推荐 Java 索引
|
3月前
|
搜索推荐 Java 索引
|
1月前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
67 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
2月前
|
设计模式 Java
结合HashMap与Java 8的Function和Optional消除ifelse判断
`shigen`是一位致力于记录成长、分享认知和留住感动的博客作者。本文通过具体代码示例探讨了如何优化业务代码中的if-else结构。首先展示了一个典型的if-else处理方法,并指出其弊端;然后引入了策略模式和工厂方法等优化方案,最终利用Java 8的Function和Optional特性简化代码。此外,还提到了其他几种消除if-else的方法,如switch-case、枚举行、SpringBoot的IOC等。一起跟随shigen的脚步,让每一天都有所不同!
35 10
结合HashMap与Java 8的Function和Optional消除ifelse判断
|
22天前
|
存储 缓存 NoSQL
一篇搞懂!Java对象序列化与反序列化的底层逻辑
本文介绍了Java中的序列化与反序列化,包括基本概念、应用场景、实现方式及注意事项。序列化是将对象转换为字节流,便于存储和传输;反序列化则是将字节流还原为对象。文中详细讲解了实现序列化的步骤,以及常见的反序列化失败原因和最佳实践。通过实例和代码示例,帮助读者更好地理解和应用这一重要技术。
20 0
|
2月前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)