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;
}
目录
相关文章
|
8月前
|
SQL 前端开发 Java
JAVA基础复习之JDBC(配置动态数据源)
复习原因 在项目的开发当中,之前数据库连接信息都是写死在配置文件当中。但是突然接到一个需求: 获取外部数据源信息,然后将某些数据通过Echarts绘制成折线图展示出来(ps:数据源需要用户手动设定) 有点懵,因为之前都是写死在配置文件当中的,然后在网上也找了一些资料,发现都不是自己想要的。 最后想到,既然是简单的获取数据进行展示,直接使用JDBC连接数据库获取就可以了啊。没有必要搞什么骚操作。 JDBC 一直使用的JPA或者mybatis进行数据库连接,很少使用JDBC进行数据库连接。 因此也复习一下JDBC,毕竟无论是JPA还是Mybatis都是对JDBC的一个封装。 什么是JD
|
8月前
|
SQL 存储 Oracle
【Java 基础】Java 数据类型和 MySql 数据类型对应表
【Java 基础】Java 数据类型和 MySql 数据类型对应表MySQL 数据类型对应 Java 数据类型 类型名称 显示长度 数据库类型 JAVA 类型 JDBC 类型索引 (int) 描述 VARCHAR L+N VARCHAR java.lang.String 12 CHAR N CHAR java.lang.String 1 BLOB L+N BLOB java.lang.byte[] -4 TEXT 65535 VARCHAR java.lang.String -1 INTEGER 4 INTEGER UNSIGNED java.lang.Long 4 TINYINT
|
8月前
|
安全 Java
Java基础深化和提高 ---- 反射技术
Java 反射机制是Java语言一个很重要的特性,它使得Java具有了“动 态性”。
86 0
Java基础深化和提高 ---- 反射技术
|
8月前
|
Java 编译器 API
Java的学习笔记(02)基础
访问修改函数 static:它用于使成员(块、方法、变量或嵌套类)可以独立于任何其他成员使用,而无需参考特定情况。 strictfp:用于限制、浮点、浮点运算和计算,并在浮点变量中执行任务时保证每个阶段的结果相同。 synchronized:它用于在Java中获得适用于块和方法的同步。 transient:作为序列化的一部分使用的因子修饰符。在序列化的季节,如果我们不想对记录中的特定变量进行多余的估计,那么此时,我们使用transient关键字。 volatile:如果修饰符告诉编译器,由不稳定变量调整的变量通过程序的不同部分发生惊人的变化,则使用volatile。 Java关键字的
|
8月前
|
存储 算法 安全
|
8月前
|
存储 安全 Java
Java基础深化和提高-------容器篇(中)
List是有序、可重复的容器。
97 0
Java基础深化和提高-------容器篇(中)
|
8月前
|
安全 Java 编译器
Java基础深化和提高-------容器篇(上)
为了能够更好的学习容器,我们首先要先来学习一个概念:泛型。
145 0
Java基础深化和提高-------容器篇(上)
|
8月前
|
Java
【Java原理探索】夯实你对AQS的认识和基础
【Java原理探索】夯实你对AQS的认识和基础
91 0
【Java原理探索】夯实你对AQS的认识和基础
|
8月前
|
Java 编译器
Java面试题1:Java基础篇
面向对象是一种万物皆对象的编程思想,任何物体都可以归为一类事物,而一个个个体都是一类事物的实例。面向对象的编程是以对象为中心,以消息为驱动的。
Java面试题1:Java基础篇
|
8月前
|
Java
Java面向对象基础5——String类(2)
Java面向对象基础5——String类(2)
76 0
Java面向对象基础5——String类(2)
推荐文章
更多