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通过网页前端显示,非常之实 ...
随机推荐
- Kafka命令行操作
Kafka命令行操作 1)查看当前服务器中的所有topic [bingo@hadoop101 kafka]$ bin/kafka-topics.sh --list --zookeeper hadoop ...
- 暑假集训test-8-29
今天瓜成一坨了. 瓜的说不出话来. 直接退役算了我. T1 傻逼题,但是我傻逼地敲了一个线段树合并,然后把空间炸了,只剩20分, 直接dfs维护子树大小,子树中最大最小值即可统计答案. //Achen ...
- 数学相关比较 牛顿迭代法求开方 很多个n的平方分之一
牛顿迭代法求开方 牛顿迭代法 作用: 求f(x) = 0 的解 方法:假设任意一点 x0, 求切线与x轴交点坐标x1, 再求切线与x轴交点坐标x2,一直重复,直到f(xn) 与0的差距在一个极小的范围 ...
- TensorFlow 与cudnn版本不匹配问题
log:Loaded runtime CuDNN library: 7.1.4 but source was compiled with: 7.2.1. 我安装的事cuda 9.0 cudnn 7. ...
- python学习7—函数定义、参数、递归、作用域、匿名函数以及函数式编程
python学习7—函数定义.参数.递归.作用域.匿名函数以及函数式编程 1. 函数定义 def test(x) # discription y = 2 * x return y 返回一个值,则返回原 ...
- JDBC_入门及注入问题
.JDBC基本概念: java database Connectivity java数据库连接,java语言操作数据库 本质: 官方定义的一套操作所有关系型数据库的规则,即接口. 各个数据库厂商实现这 ...
- ARM GNU 常用汇编伪指令介绍
abort .abort: 停止汇编 .align absexpr1, absexpr2: 以某种对齐方式,在未使用的存储区域填充值. 第一个值表示对齐方式,4, 8,16 或 32. 第 二个表 ...
- Win32SDK应用程序
转自:https://blog.csdn.net/jxf_ioriyagami/article/details/1486626 1 说在前面 由于VC6及MFC的特点,我们许多人从标准C++学习 ...
- 获取的Json数据需要去掉特殊符号
我们平时在后台代码里面获取的Json数据如下情况: json会包含\r ,\n, \ 等一些特殊的符号.下面我们就写一个方法去消除这些特殊符号,在代码里获取到纯净的json. public stat ...
- HLS 视频加密小记
我是在ubuntu中,安装好了 ffmpeg 加密用的 key(生成一个encrypt2.key文件) openssl rand 16 > encrypt2.key 另一个是 iv(生成一段字符 ...