更新-java非法字符替换以及次数的表示

本文介绍了一个使用Java编写的简单字符串“绿化”工具,通过替换指定的非法字符为特定符号,实现对字符串的安全处理。该工具利用了HashMap进行字符计数,并通过StringBuffer实现了对字符串的修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上一篇中 我用的简单的String.valueOf  在本文中,我采用的是list和map两种方法来实现。

代码如下:

package com.domain.com;

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

public class UnKown {
	
	static Map<String, Integer> map=new HashMap<String, Integer>();
public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
	UnKown unk = new UnKown();
	System.out.println("1.开始绿化     2.解除绿化");
	int chs= sc.nextInt();
	if(chs==1) {
		System.out.println("输入检查字符:");
		unk.greening();
		System.out.println("非法字符共出现:"+"次");
	}else {
		unk.notGreening();
	}
}

首先我们定义一个map   初始化对象 

执行如下:

开始运行unk.greening绿化:

public void greening() {
	Scanner sc1 = new Scanner(System.in);
	String character = sc1.nextLine();
	String str = character;
	str.trim();//去除首尾空格
	StringBuffer sb=new StringBuffer(str);
	
	List list=new ArrayList<>();
	list.add("我");
	list.add("你");
	list.add("他");
	map.put("我",0);
	map.put("你",0);
	map.put("他",0);
	
	int temp=0;
	int result=0;
	for (int i = 0; i < list.size(); i++) {

			result=sb.indexOf(list.get(i).toString());
			boolean tag=true;
			if(result==-1)
			{
				break;
			}
			else {
				while(tag) {
				temp=result;
				sb.replace(result, result+list.get(i).toString().length(), "*"+(map.get(list.get(i))+1));
				int num=map.get(list.get(i));
				map.put(list.get(i).toString(), ++num);
				result=sb.indexOf(list.get(i).toString(), temp);
				if(result==-1)
				{
					tag=false;
				}
				}
		}	
		
	}
	result=0;
	for(int i=0;i<list.size();i++)
	{
		result+=map.get(list.get(i));
	}
	
	System.out.println("绿化后版本:"+sb.toString());
	System.out.println("非法字符一共出现了"+result);

noob-Java-man

若有不妥之处,请多指教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值