华为机试题-密码输入检测

题目

给定用户密码输入流 input,输入流中字符’<‘表示退格,可以清除前一个输入的字符,请你编写程序,输出最终得到的密码字符,并判断密码是否满足如下的密码安全要求。
密码安全要求如下:
密码长度>=8;
密码至少需要包含 1 个大写字母;
密码至少需要包含 1 个小写字母;
密码至少需要包含 1 个数字;
密码至少需要包含 1 个字母和数字以外的非空白特殊字符
注意空串退格后仍然为空串,且用户输入的字符串不包含’<‘字符和空白字符。
输入描述
用一行字符串表示输入的用户数据,输入的字符串中’<‘字符标识退格,用户输入的字符串不包含空白字符,例如:ABC<c89%000<
输出描述
输出经过程序处理后,输出的实际密码字符串,并输出改密码字符串是否满足密码安全要求。两者间由’,'分隔, 例如:ABc89%00,true
示例
输入
ABC<c89%000<
1
输出
ABc89%00,true

参考代码

栈的应用以及Character类中api 的使用

package RealTest;

import java.util.Scanner;
import java.util.Stack;

/**
 * @ClassName stackDemo
 * @Description TODO
 * @Author 21916
 * @Date 2024/3/27 20:59
 */

public class stackDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //分别对应五个条件
        boolean f1 =false;
        boolean f2 =false;
        boolean f3 =false;
        boolean f4 =false;
        boolean f5 =false;
        String s = sc.nextLine();
        char[] arr = s.toCharArray();
        Stack<Character> stack = new Stack<>();
        for(char ch:arr){
            if(ch!='<') stack.push(ch);
            else if(ch=='<') stack.pop();
        }
       // System.out.println(stack);
        StringBuilder sb= new StringBuilder("");
        if(stack.size()>=8) f1=true;
        for (char c:stack){
         if(Character.isLetter(c)){
             if(Character.isUpperCase(c)) f2=true;
             else if(Character.isLowerCase(c)) f3=true;
         }
         else if(Character.isDigit(c)) f4= true;
         else if(!Character.isLetter(c)&&!Character.isDigit(c)) f5=true;
         sb.append(c);
       }
        String str = sb.toString();
        boolean f =f1&&f2&&f3&&f4&&f5;
        System.out.println(str+","+f);

    }
}

相关推荐

  1. 华为试题-密码输入检测

    2024-03-27 23:28:05       44 阅读
  2. 密码输入检测

    2024-03-27 23:28:05       55 阅读
  3. 华为试题-字符串压缩

    2024-03-27 23:28:05       42 阅读
  4. 华为试题-最小矩阵

    2024-03-27 23:28:05       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-27 23:28:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-27 23:28:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-27 23:28:05       82 阅读
  4. Python语言-面向对象

    2024-03-27 23:28:05       91 阅读

热门阅读

  1. Vue.js 目录结构

    2024-03-27 23:28:05       42 阅读
  2. 设置mysql 数据库和表 的编码方式UTF-8

    2024-03-27 23:28:05       36 阅读
  3. 蓝桥杯刷题_day4_动态规划

    2024-03-27 23:28:05       38 阅读
  4. 如何用OBD创建OceanBase集群

    2024-03-27 23:28:05       32 阅读
  5. docker的安装和镜像的拉取

    2024-03-27 23:28:05       40 阅读
  6. XGB-24:使用Scikit-Learn估计器接口

    2024-03-27 23:28:05       43 阅读
  7. 使用指纹的锁屏解锁流程

    2024-03-27 23:28:05       41 阅读