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;
}
目录
相关文章
|
2月前
|
搜索推荐 Java 索引
|
2月前
|
Java
【思维导图】JAVA网络编程思维升级:URL与URLConnection的逻辑梳理,助你一臂之力!
【思维导图】JAVA网络编程思维升级:URL与URLConnection的逻辑梳理,助你一臂之力!
39 1
|
2月前
|
搜索推荐 Java 索引
|
2月前
|
搜索推荐 Java 索引
|
2月前
|
搜索推荐 Java 索引
|
13天前
|
设计模式 Java
结合HashMap与Java 8的Function和Optional消除ifelse判断
`shigen`是一位致力于记录成长、分享认知和留住感动的博客作者。本文通过具体代码示例探讨了如何优化业务代码中的if-else结构。首先展示了一个典型的if-else处理方法,并指出其弊端;然后引入了策略模式和工厂方法等优化方案,最终利用Java 8的Function和Optional特性简化代码。此外,还提到了其他几种消除if-else的方法,如switch-case、枚举行、SpringBoot的IOC等。一起跟随shigen的脚步,让每一天都有所不同!
28 10
结合HashMap与Java 8的Function和Optional消除ifelse判断
|
21天前
|
安全 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版)
|
2月前
|
运维 Java 程序员
新手进阶:用对if-else,让你的Java逻辑判断不再纠结!
新手进阶:用对if-else,让你的Java逻辑判断不再纠结!
46 3
|
2月前
|
Java 开发者
在Java编程中,if-else与switch作为核心的条件控制语句,各有千秋。if-else基于条件分支,适用于复杂逻辑;而switch则擅长处理枚举或固定选项列表,提供简洁高效的解决方案
在Java编程中,if-else与switch作为核心的条件控制语句,各有千秋。if-else基于条件分支,适用于复杂逻辑;而switch则擅长处理枚举或固定选项列表,提供简洁高效的解决方案。本文通过技术综述及示例代码,剖析两者在性能上的差异。if-else具有短路特性,但条件增多时JVM会优化提升性能;switch则利用跳转表机制,在处理大量固定选项时表现出色。通过实验对比可见,switch在重复case值处理上通常更快。尽管如此,选择时还需兼顾代码的可读性和维护性。理解这些细节有助于开发者编写出既高效又优雅的Java代码。
30 2
下一篇
无影云桌面