6.18(检测密码)一些网站对于密码具有一些规则。编写一个方法检测字符串是否是一个有效密码。编写一个程序,提示用户输入一个密码,如果符合规则,则显示…否则显示…

  • 题目
    • 题目描述
    • 破题
  • 代码
    • 运行示例

题目

题目描述

6.18(检测密码)一些网站对于密码具有一些规则。编写一个方法检测字符串是否是一个有效密码。
假定密码规则如下:
①密码必须至少8位字符
②仅能包含字母和数字
③密码必须包含至少两个数字
编写一个程序,提示用户输入一个密码,如果符合规则,则显示Valid Pasword,否则显示Invalid Password

破题

  1. 至少8位:字符串长度大于等于8
  2. 仅能包含字母和数字:字符串每位的ASCII码只能在如下三个区间:[48, 57]、[65, 90]、[97, 112]
  3. 必须至少包含两个数字:至少在[48, 57]区间出现两次
  4. 编写一个返回字符ASCII码的方法:public static int char_to_ASCII(char ch)
  5. 主方法则实现其他功能

代码

import java.util.Scanner;public class Test6_18 {public static void main(String[] args) {// 接收用户输入Scanner input = new Scanner(System.in);System.out.print("请输入一个密码:");String str = input.nextLine();// 1. 至少8位:字符串长度大于等于8int length = str.length();if (length < 8){System.out.println("Invalid Password");System.exit(1);}// 2. 转ASCIIboolean bool1 = true, bool2 = false;int count = 0;for (int i = 0 ;i < length;i++){int int_ASCII = char_to_ASCII(str.charAt(i));// 仅能包含字母和数字;[48, 57]、[65,  90]、[97, 122]if (int_ASCII < 48 || (int_ASCII > 57 && int_ASCII < 65) || (int_ASCII > 90 && int_ASCII < 97) || int_ASCII > 122){bool1 = false;break;}// 必须至少包含两个数字if (int_ASCII >= 48 && int_ASCII <= 57)count++;}if (count >= 2)bool2 = true;// 输出判断if (bool1 && bool2)System.out.println("Valid Password");elseSystem.out.println("Invalid Password");}public static int char_to_ASCII(char ch){return (int) (ch);}
}

运行示例

请输入一个密码:Invalid Password123
Invalid Password

Java黑皮书课后题第6章:**6.18(检测密码)一些网站对于密码具有一些规则。编写一个方法检测字符串是否是一个有效密码。编写一个程序,提示用户输入一个密码,如果符合规则,则显示…否则显示…相关推荐

  1. Java黑皮书课后题第6章:*6.23(指定字符的出现次数)使用下面的方法头编写一个方法,找到一个字符串中指定字符的出现次数。编写一个测试程序,提示用户输入一个字符串以及一个字符,显示该字符出现次数

    6.23(指定字符的出现次数)使用下面的方法头编写一个方法,找到一个字符串中指定字符的出现次数.编写一个测试程序,提示用户输入一个字符串以及一个字符,显示该字符出现次数 题目 题目描述 破题 代码 运 ...

  2. Java黑皮书课后题第8章:*8.21(中心城市)给定一组城市,中心城市是和其它所有城市具有最短距离的城市。编写一个程序,提示用户输入城市数目以及位置(坐标),找到中心城市以及与其他城市总距离

    *8.21(中心城市)给定一组城市,中心城市是和其它所有城市具有最短距离的城市.编写一个程序,提示用户输入城市数目以及位置(坐标),找到中心城市以及与其他城市总距离 题目 题目描述与运行示例 破题 代 ...

  3. Java黑皮书课后题第4章:4.4(几何:六边形面积)六边形面积可以通过下面公式计算(s是边长) 编写程序,提示用户输入六边形的边长,然后显示它的面积

    4.4(几何:六边形面积)六边形面积可以通过下面公式计算(s是边长) 编写程序,提示用户输入六边形的边长,然后显示它的面积 题目 题目概述 运行示例 破题 代码 题目 题目概述 4.4(几何:六边形面 ...

  4. Java黑皮书课后题第8章:**8.17(金融风暴)银行会互相借款……银行的总资产是它当时的余款减去它欠其他银行的贷款。如果一个银行的总资产在某个限以下,那么这个银行是不安全的。编写程序,找出所有不安

    **8.17(金融风暴)银行会互相借款--银行的总资产是它当时的余款减去它欠其他银行的贷款.如果一个银行的总资产在某个限以下,那么这个银行是不安全的.编写程序,找出所有不安全银行 题目 题目描述 破题 ...

  5. Java黑皮书课后题第7章:*7.12(倒置数组)7.7节中的reverse方法通过复制到新数组实现倒置。改写方法将参数中传递的数组倒置,并返回该数组。编写一个测试程序,输入10个数字,倒置它们并显示

    7.12(倒置数组)7.7节中的reverse方法通过复制到新数组实现倒置.改写方法将参数中传递的数组倒置,并返回该数组.编写一个测试程序,输入10个数字,倒置它们并显示 题目 题目描述 破题 代码 ...

  6. Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类

    Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类) 题目 缺陷 UML图 代码 Test02_MyDate.java:用于参考的My ...

  7. Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的

    Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...

  8. Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字

    Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字 题目 代码 结果 题目 都在上面 代码 import java.math.B ...

  9. Java黑皮书课后题第10章:*10.13(几何:MyRectangle2D类)定义MyRectangle2D类

    Java黑皮书课后题第10章:10.3 题目 程序 代码 Test13.java Test13_MyRectangle2D.java 运行 UML 题目 程序 Test13.java:测试程序 Tes ...

  10. Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中

    Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中 题目 程序说明 题目槽点 代码:Test2_BMI.java 运行实例 题目 程序说明 Test2_BMI.java ...

最新文章

  1. C++_泛型编程与标准库(一)
  2. java selenium (六) XPath 定位
  3. Android mediaRecorder框架简述(二)
  4. html select选择事件_用 Java 拿下 HTML,分分钟写个小爬虫
  5. 基于matlab的能级_波函数及几率密度图形的绘制,基于MATLAB的能级波函数及几率密度图形的绘制.pdf...
  6. 硬件芯片选型原理图设计
  7. Android之matrix类控制图片的旋转、缩放、移动
  8. MSSQL 2005 分页分析及优化(转)
  9. 高等数学二python实现导数与微分
  10. 考完试 记录一下复习资料 人工智能原理知识点整理
  11. Mintec.MineSight.3D.v7.0.3
  12. 数值分析及其matlab实现习题答案,数值分析练习题(含答案).doc
  13. python 路由追踪_tracert跟踪路由
  14. 求一阶微分方程通解和特解
  15. 布莱叶盲文-谷歌生态
  16. 土木/岩土期刊版面费/审稿费统计列表
  17. matlab数字信号处理(1)——正弦信号生成与时域分析
  18. 遇到Process finished with exit code -1073740791 (0xC0000409)实在不能解决的时候要注意
  19. 已解决RuntimeError: CUDA error: device-side assert triggered异常的正确解决方法,亲测有效!!!
  20. Linux学习:入门,概述,常用命令,环境安装

热门文章

  1. none是不是python的保留字_Python主要保留字
  2. 1771: 书架整理(dp)
  3. 基于实时深度学习的推荐系统架构设计和技术演进
  4. 产品更新教程-钉钉宜搭版本:手写签名和定位组件来了
  5. 【云上创新】阿里云视频云分享全场景音视频服务背后的场景探索与技术实践
  6. 秒懂云通信:选云通信到底哪家强?
  7. android 恢复出厂设置 时间,Android 恢复出厂设置后,时间不能恢复为:2013年1月1日...
  8. 《死亡细胞》中神秘背景世界色彩设计(上)
  9. 以外包角度谈美术制程 Studio Voltz联合创始人开发经验
  10. 发挥游戏人工智能的最大价值:线程化