sdut lava lab7.5

7-5 sdut-JAVA-Valid Password

分数 9

全屏浏览

切换布局

作者 马新娟

单位 山东理工大学

You have been requested to write a method that will be used when a user wishes to change his/her password. Your method should accept a String object and report whether or not this input constitutes a valid password. The rules for a valid password are as follows:

• between 6 to 10 characters in length

• must contain at least one digit, at least one uppercase alphabetic character (in accordance with the English alphabet), at least one lowercase alphabetic character (in accordance with the English alphabet) and at least one other non-space character (that is not a digit or alphabetic character in accordance with the English alphabet)

• no spaces

Input Specification:

Accept a String object .

Output Specification:

Report whether or not this input constitutes a valid password.

Sample Input:

Maggie26

Sample Output:

Password is invalid.
MAggie&26

Sample Output:

Password is valid.

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String arr =sc.nextLine();if(arr.length()<6||arr.length()>10){System.out.println("Password is invalid.");System.exit(0);}for(int i = 0 ; i < arr.length() ; i++){if(arr.charAt(i) == ' '){System.out.println("Password is invalid.");System.exit(0);}}int min = 0;int max = 0;int di = 0;int fu = 0;for(int i = 0 ;i  <arr.length();i++){if(arr.charAt(i)>='0'&&arr.charAt(i)<='9'){di+=1;}else if(arr.charAt(i)>='A'&&arr.charAt(i)<='Z'){max+=1;}else if(arr.charAt(i)>='a'&&arr.charAt(i)<='z'){min+=1;}else{fu += 1;}}if(min>=1&&max>=1&&di>=1&&fu>=1){System.out.println("Password is valid.");}else{System.out.println("Password is invalid.");}}
}

Java代码的目的是验证用户输入的字符串(密码)是否符合一定的规则。以下是对每一行代码的解释:

 

import java.util.Scanner;

导入Java的Scanner类,用于读取用户的输入。

 

public class Main {

定义了一个名为Main的公共类。

 

public static void main(String[] args) {

定义了程序的主入口点main方法。

 

Scanner sc = new Scanner(System.in);

创建了Scanner类的一个实例sc,用于从标准输入读取数据。

 

String arr = sc.nextLine();

读取用户输入的一行文本,通常是一个密码,并将其存储在字符串变量arr中。

 

if (arr.length() < 6 || arr.length() > 10) {

检查密码的长度是否小于6或大于10。

 

System.out.println("Password is invalid.");

如果长度不符合要求,打印一条消息并退出程序。

 

System.exit(0); }

结束if语句,并正常退出程序。

 

for (int i = 0; i < arr.length(); i++) {

遍历密码字符串的每个字符。

 

if (arr.charAt(i) == ' ') {

检查当前字符是否是空格。

 

System.out.println("Password is invalid.");

如果密码中包含空格,打印一条消息并退出程序。

 

System.exit(0);

结束if语句,并正常退出程序。

 

}

结束for循环中的if语句。

 

}

结束for循环。

 

int min = 0; int max = 0; int di = 0; int fu = 0;

初始化四个计数器变量,用于统计不同类型的字符。

 

for (int i = 0; i < arr.length(); i++) {

再次遍历密码字符串的每个字符,这次是为了统计字符类型。

 

if (arr.charAt(i) >= '0' && arr.charAt(i) <= '9') {

检查当前字符是否是数字。

 

di += 1;

如果是数字,增加数字计数器di

 

} else if (arr.charAt(i) >= 'A' && arr.charAt(i) <= 'Z') {

检查当前字符是否是大写字母。

 

max += 1;

如果是大写字母,增加大写字母计数器max

 

} else if (arr.charAt(i) >= 'a' && arr.charAt(i) <= 'z') {

检查当前字符是否是小写字母。

 

min += 1;

如果是小写字母,增加小写字母计数器min

 

} else {

如果当前字符不是字母、数字或下划线。

 

fu += 1;

增加特殊字符计数器fu

 

}

结束if-else语句。

 

}

结束for循环。

 

if (min >= 1 && max >= 1 && di >= 1 && fu >= 1) {

检查是否至少有一个小写字母、一个大写字母、一个数字和一个特殊字符。

 

System.out.println("Password is valid.");

如果所有条件都满足,打印一条消息表明密码有效。

 

} else {

否则,密码无效。

 

System.out.println("Password is invalid.");

打印一条消息表明密码无效。

 

}

结束if-else语句。

 

}

结束main方法。

 

}

结束Main类。

这个程序的逻辑是:首先检查密码的长度是否在6到10个字符之间,然后检查密码中是否包含空格。接着,统计密码中小写字母、大写字母、数字和其他字符的数量。最后,检查是否每种类型的字符至少有一个,以此来判断密码是否有效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/9612.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

传感器—超声波雷达

声波技术 在讲述超声波雷达之前&#xff0c;先了解一下声波的概念以及超声波和声波之间的关系 什么是声波&#xff1f; 声波是物体机械振动状态&#xff08;或能量&#xff09;的传播形式。所谓振动是指物质的质点在其平衡位置附近进行的往返运动形式&#xff0c;这种振动状…

【Unity】编程感悟20240510

【背景】 这一点感悟是过去有所认识&#xff0c;但是最近写Unity项目&#xff0c;涉及UDP通信需要持续监听逻辑时更加感受深刻的。 选用合适的触发点&#xff0c;用明确的逻辑避免循环处理 尽量采用明确的触发点使逻辑清晰&#xff0c;规避一定时间刷新这类的逻辑。 比如UDP…

工厂模式应用实例

引言 设计模式概念 设计模式&#xff08;Design Pattern&#xff09;的官方概念可以表述为&#xff1a;在软件设计中&#xff0c;设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它是针对特定问题或特定场景的解决方案&#xff0c;是一种经过…

你写的每条SQL都是全表扫描吗

你写的每条SQL都是全表扫描吗&#xff1f;如果是&#xff0c;那MySQL可太感谢你了&#xff0c;每一次SQL执行都是在给MySQL上压力、上对抗。MySQL有苦难言&#xff1a;你不知道索引吗&#xff1f;你写的SQL索引都失效了不知道吗&#xff1f;慢查询不懂啊&#xff1f;建那么多索…

进一步解读英伟达 Blackwell 架构、NVlink及GB200 超级芯片

2024年3月19日&#xff0c;英伟达CEO黄仁勋在GTC大会上公布了新一代AI芯片架构BLACKWELL&#xff0c;并推出基于该架构的超级芯片GB200&#xff0c;将助推数据处理、工程模拟、电子设计自动化、计算机辅助药物设计、量子计算和生成式 AI 等领域。 为了纪念杰出的数学家David H…

设计软件有哪些?渲染软件篇(3),渲染100邀请码1a12

今天我们继续介绍几款渲染软件&#xff0c;方便大家了解 1、渲染100(http://www.xuanran100.com/?ycode1a12) 渲染100是网渲平台&#xff0c;为设计师提供高性能的渲染服务。通过它设计师可以把本地渲染移到云端进行&#xff0c;速度快价格便宜&#xff0c;支持3dmax、vray、…

sklearn和torch计算的r2 score不一样

检查一下函数参数的位置&#xff0c;预测值和真实值位置不一样&#xff0c;可以参考函数定义 torch_r2score torch_r2(pred, y) sklearn_r2score r2_score(y, pred) https://pytorch.org/torcheval/main/generated/torcheval.metrics.functional.r2_score.html Parameters: …

文献速递:深度学习医学影像心脏疾病检测与诊断--基于迁移学习的生成对抗网络用于静态和动态心脏PET的衰减校正

Title 题目 Transfer learning‑based attenuation correction for static and dynamic cardiac PET using a generative adversarial network 基于迁移学习的生成对抗网络用于静态和动态心脏PET的衰减校正 01 文献速递介绍 心脏正电子发射断层扫描&#xff08;PET&#xf…

2024数维杯C题成品文章代码思路分享保姆级

天然气水合物资源评估与钻井位置优化&#xff1a;方法、挑战 摘要 天然气水合物&#xff0c;通常称为可燃冰&#xff0c;是一种在特定高压低温条件下由天然气和水形成的类冰结晶物。由于其外观类似冰块且可燃&#xff0c;天然气水合物在深海底及永久冻土区广泛分布&#xff0c;…

数据结构05:树与二叉树 习题01[C++]

考研笔记整理&#xff0c;本篇作为树与二叉树的基本概念习题&#xff0c;供小伙伴们参考~&#x1f95d;&#x1f95d; 之前的博文链接在此&#xff1a;数据结构05&#xff1a;树与二叉树[C]-CSDN博客~&#x1f95d;&#x1f95d; 第1版&#xff1a;王道书的课后习题~&#x1…

React + 项目(从基础到实战) -- 第11期

目标 问卷编辑器的开发 设计UI - 拆分布局 水平垂直居中 画布 y方向滚动 自定义问卷组件 后端 返回组件数据 //获取单个问卷信息{url: /api/question/:id,method: get,response: () > {return {errno: 0,data: {id: Random.id(),title: Random.ctitle(),componentList:[//…

蒸汽工厂的新翼:数字孪生锅炉引领未来

在飞速发展的工业4.0时代&#xff0c;数字孪生技术已经深入到我们生产生活的方方面面。而对于那些承载着重工业血脉的蒸汽工厂来说&#xff0c;一项新的技术正在悄然改变它们的未来。 走进蒸汽工厂&#xff0c;感受传统与现代的交融 蒸汽工厂&#xff0c;这个充满力量与热情的…

马化腾用了一年多的时间,告诉所有人,视频号小店是新风口!

大家好&#xff0c;我是电商笨笨熊 当腾讯说出自己要做电商的时候&#xff0c;所有人都在说&#xff0c;根本不可能&#xff1b; 甚至在视频号小店正式推出之后&#xff0c;依旧有人说&#xff0c;腾讯做电商就是笑话&#xff1b; 一个“抄”过来的项目&#xff0c;毫无特色…

Kubernetes容器技术详解

kubernetes Kubernetes&#xff08;K8s&#xff09;由Google打造&#xff0c;是一款功能强大、灵活可扩展的容器编排平台&#xff0c;引领云原生技术潮流。 Kubernetes主要解决以下4大点&#xff1a; 1.自动化运维平台 如下图所示&#xff1a; Kubernetes携手Docker&#xf…

探秘未来科技:数字化无人巡检的奇妙之旅

嘿&#xff0c;朋友们&#xff01;下午茶时间到&#xff01;趁着这会儿咱们来聊一个超级炫酷的话题——数字化无人巡检。想象一下&#xff0c;那些曾经需要人工跋山涉水、风吹日晒的巡检工作&#xff0c;现在正被一群“智能小分队”悄悄接手&#xff0c;是不是觉得既神奇又方便…

25岁软件工程师:19岁创业,25岁创建自己的工作室,谈一下我对创业的一点思考。

文章目录 &#x1f95d;About Me&#x1f3c0;关于工作室✅我对创业思考 大家好哈&#xff0c;欢迎查看工程师令狐本期节目。这篇文章主要是一篇回忆复盘总结文&#xff0c;复盘总结刚上大学到走向工作这段经历&#xff0c;自己的感悟、感想与收获&#xff0c;期望对读者有所帮…

深入理解Logback异步日志配置及性能优化

目录 直接上成品1. 分类日志输出2. 异步输出日志 Logback异步日志配置1. 配置文件说明2. 异步输出配置示例 性能测试与优化效果异步日志输出原理结语 直接上成品 <?xml version"1.0" encoding"utf-8"?> <configuration><property resour…

安防监控/视频汇聚系统EasyCVR+AI智能分析助力解决校园霸凌事件

一、方案背景 校园霸凌这一校园中不应存在的现象&#xff0c;却屡见不鲜&#xff0c;它像一把锋利的刀&#xff0c;深深地刺入那些无辜的心灵&#xff0c;让受害者承受着无尽的痛苦。随着科技的进步与发展&#xff0c;我们应该追求有效、进步的手段来阻止校园霸凌事件的发生&a…

electron 中拦截内嵌页面 beforeunload 的弹窗提示

window 的 beforeunload 事件提示在electron 不兼容&#xff0c;弹窗提示不出来&#xff0c;还会导致莫名其妙的假死问题&#xff0c;下面记录一下解决方法。 1. 如果仅需要拦截弹窗&#xff1a; win.webContents.on(will-prevent-unload, (event) > {event.preventDefault(…

c++ 读写锁对比试验

1.概要 证明如下两点 写锁的时候&#xff0c;读不受影响。写锁的期间&#xff0c;其他线程不能写。 2.代码 // ConsoleApplication2.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //#include <iostream> #include <thread> #inclu…