旧键盘(简单难度)

该博客介绍了一个简单的Java程序,用于找出给定的期望输入字符串与实际输入字符串之间的差异。程序通过创建两个HashSet来存储期望和实际输入的字符,并通过遍历和判断去除重复字符,有效解决了字符串比较中可能出现的重复输出问题。此代码适用于简单的字符串处理和字符比较场景。
摘要由CSDN通过智能技术生成

题目概述(简单难度)

在这里插入图片描述

题目链接
旧键盘

思路与代码

思路展现

代码示例

import java.util.*;
public class Main {
    public static void func(String strExc,String strAct){
        //set1用于存放实际输入的值,也就是我们的strAct 
        HashSet<Character> set1 = new HashSet<>();
        //因为题目中说了要忽略小写,都为大写,所以用toUpperCase方法
        for(char c:strAct.toUpperCase().toCharArray()){
            set1.add(c);
        }
        //set2是为了避免重复设置的集合,主要存储最终要输出的元素.
        //set2主要存储最终要输出的值
        HashSet<Character> set2 = new HashSet<>();
        for(char c:strExc.toUpperCase().toCharArray()){
        //注意这里要进行两次判断,是因为假设只有判断set1当中的元素是否存在于c中的字符,此时结果会重复
            if(!set1.contains(c)&&!set2.contains(c)) {
                set2.add(c);
                System.out.print(c);
            }
        }
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //我们本来想要得到的输入的值
        String strExc = sc.nextLine();
        //最终实际输入的值
        String strAct = sc.nextLine();
        func(strExc,strAct);
    
  }
}

假设if(!set1.contains©&&!set2.contains©)这个判断语句中的第二个判断条件没有的话,会出现下面的错误:
在这里插入图片描述
我们会发现输出结果出现重复,主要原因是每次判断的时候没有去重,所以此时需要定义额外的set2集合去重.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值