java笔试之简单密码
密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。
假设渊子原来一个BBS上的密码为zvbo9441987,为了方便记忆,他通过一种算法把这个密码变换成YUANzhi1987,这个密码是他的名字和出生年份,怎么忘都忘不了,而且可以明目张胆地放在显眼的地方而不被别人知道真正的密码。
他是这么变换的,大家都知道手机上的字母: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,就这么简单,渊子把密码中出现的小写字母都变成对应的数字,数字和其他的符号都不做变换,
声明:密码中没有空格,而密码中出现的大写字母则变成小写之后往后移一位,如:X,先变成小写,再往后移一位,不就是y了嘛,简单吧。记住,z往后移是a哦。
可以用if判断,也可以用正则匹配
package test;
import java.util.Scanner;
public class exam13 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
String str = scanner.nextLine();
// char[] pwd = str.toCharArray();
// System.out.println(truepwd(str).toString());
System.out.println(truepwd2(str));
}
scanner.close();
}
// 方法1:if判断
public static StringBuilder truepwd(String str) {
StringBuilder sbBuilder = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch >= 'A' && ch < 'Z') {
ch = (char) (ch + 1 - ('A' - 'a'));
} else if (ch == 'Z') {
ch = 'a';
} else if (ch >= 'a' && ch <= 'z') {
if (ch == 'a' || ch == 'b' | ch == 'c') {
ch = '2';
} else if (ch == 'd' || ch == 'e' || ch == 'f') {
ch = '3';
} else if (ch == 'g' || ch == 'h' || ch == 'i') {
ch = '4';
} else if (ch == 'j' || ch == 'k' || ch == 'l') {
ch = '5';
} else if (ch == 'm' || ch == 'n' || ch == 'o') {
ch = '6';
} else if (ch == 'p' || ch == 'q' || ch == 'r' || ch == 's') {
ch = '7';
} else if (ch == 't' || ch == 'u' || ch == 'v') {
ch = '8';
} else if (ch == 'w' || ch == 'x' || ch == 'y' || ch == 'z') {
ch = '9';
}
}
sbBuilder.append(ch);
}
return sbBuilder;
}
// 方法2:使用正则表达式
public static String truepwd2(String str) {
StringBuffer sBuffer = new StringBuffer(str);
for (int i = 0; i < str.length(); i++) {
char ch = sBuffer.charAt(i);
if (ch >= 'A' && ch < 'Z') {
ch = (char) (ch + 1 - ('A' - 'a'));
} else if (ch == 'Z') {
ch = 'a';
} else if (ch >= 'a' && ch <= 'z') {
if (String.valueOf(ch).matches("[abc]")) {
ch = '2';
} else if (String.valueOf(ch).matches("[def]")) {
ch = '3';
} else if (String.valueOf(ch).matches("[ghi]")) {
ch = '4';
} else if (String.valueOf(ch).matches("[jkl]")) {
ch = '5';
} else if (String.valueOf(ch).matches("[mno]")) {
ch = '6';
} else if (String.valueOf(ch).matches("[pqrs]")) {
ch = '7';
} else if (String.valueOf(ch).matches("[tuv]")) {
ch = '8';
} else if (String.valueOf(ch).matches("[wxyz]")) {
ch = '9';
}
}
sBuffer.setCharAt(i, ch);
}
return sBuffer.toString();
}
}
java笔试之简单密码的更多相关文章
- Java消息系统简单设计与实现
前言:由于导师在我的毕设项目里加了消息系统(本来想水水就过的..),没办法...来稍微研究研究吧..简单简单... 需求分析 我的毕设是一个博客系统,类似于简书这样的,所以消息系统也类似,在用户的消息 ...
- Java笔试面试题整理第六波(修正版)
转载至:http://blog.csdn.net/shakespeare001/article/details/51330745 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题整理第四波
转载至:http://blog.csdn.net/shakespeare001/article/details/51274685 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- 应聘Java笔试时可能出现问题及其答案
有感:应聘Java笔试时可能出现问题及其答案 huij 前段时间因为要参加一个笔试,在准备期间在网上找到了两条关于笔试题目的文章,其中一篇为<<有感:应聘Java笔试时可能出现问题> ...
- Java语言实现简单FTP软件------>FTP软件主界面的实现(四)
首先看一下该软件的整体代码框架 1.首先介绍程序的主入口FTPMain.java,采用了一个漂亮的外观风格 package com.oyp.ftp; im ...
- java使用face++简单实现人脸识别注册登录
java使用face++简单实现人脸识别注册登录 前言 人脸识别,好高大上!!! 理解之后很简单. 支付宝使用的就是face++, 至于face++账号信息,apikey…..,本文不做讲述,网上很多 ...
- AC日记——简单密码 openjudge 1.7 10
10:简单密码 总时间限制: 1000ms 内存限制: 65536kB 描述 Julius Caesar曾经使用过一种很简单的密码.对于明文中的每个字符,将它用它字母表中后5位对应的字符来代替,这 ...
- Java 异步处理简单实践
Java 异步处理简单实践 http://www.cnblogs.com/fangfan/p/4047932.html 同步与异步 通常同步意味着一个任务的某个处理过程会对多个线程在用串行化处理,而异 ...
- 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小
原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...
随机推荐
- JAVA单线程和多线程的实现方式
1.java单线程的实现 一个任务一个人独立完成 public class SingletonThread { @SuppressWarnings("static-acce ...
- php基本,输出 ,变量
<?php //php开头//单行注释/*多行注释*/ echo "hello word";//输出 方式连续输出多个字符串print"hello word&q ...
- thinlphp配置加载
在ThinkPHP中,一般来说应用的配置文件是自动加载的,加载的顺序是: 惯例配置->应用配置->模式配置->调试配置->状态配置->模块配置->扩展配置-> ...
- JavaScript中的节流和防抖
节流: 在规定时间内,多次触发事件,但是只执行一次 场景:输入框搜索,地图渲染 优化用户体验 /** * 节流 规定时间内不管触发多少次只执行一次 * @param {Function} fn 实际要 ...
- .net API跨域
在webconfig中的节点 <system.webServer> </system.webServer> 下添加 <httpProtocol><custom ...
- NX二次开发-UFUN读取图纸尺寸的值UF_DRF_ask_dimension_text
今天发现UF_DRF_ask_dim_info这个函数不能读带附件文本的尺寸,有附加文本dim_info->text_info->text->full_string;读出来的是附加文 ...
- flutter 显示HTML代码
需求是后台返回的是富文本,所以需要吧富文本转成flutter 能识别的内容 找了几个插件只有这个比较好用写下来 dependencies: flutter_html: ^0.9.8 安装 下剩下的就比 ...
- detours编译与windows下makefile学习
1.编译 windows环境命令行编译很少用,detours需要使用命令行编译,刚好试试,过程如下: 1.为了能够在所有目录中使用nmake命令,需要设置环境变量Path D:\Program Fil ...
- Slow HTTP POST慢速攻击
测试工具 模拟测试工具:slowhttptest https://github.com/shekyan/slowhttptest 安装: https://github.com/shekyan/slow ...
- 01、requests 基本使用
requests模块的基本使用 基于网络请求的模块. 环境的安装:pip install requests 作用:模拟浏览器发起请求 分析requests的编码流程: 1.指定url 2.发起了请求 ...