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通过网页前端显示,非常之实 ...
随机推荐
- 小程序生成海报:通过 json 配置方式轻松制作一张海报图
背景 由于我们无法将小程序直接分享到朋友圈,但分享到朋友圈的需求又很多,业界目前的做法是利用小程序的 Canvas 功能生成一张带有二维码的图片,然后引导用户下载图片到本地后再分享到朋友圈.而小程序 ...
- Java中配置环境变量
在系统环境变量中设置: ClASSPATH中输入: ".;C:\Program Files\Java\jdk1.7.0_07\jre\lib\rt.jar;"//java的安装目录 ...
- 凑出和相等的k组数,玄学结论——hdu6616
[1,n]n个数分成k组,每组n/k个,问k组数和相等的解决方案 首先(1+n)*n/2判定一下是否可以被k整除 n/k为偶数时显然成立 n/k为奇数时每组数前三个很难配,我想了一种玄学的结论,也证明 ...
- px2rem-loader(Vue:将px转化为rem,适配移动端)
转载:https://www.cnblogs.com/WQLong/p/7798822.html 1.下载lib-flexible 使用的是vue-cli+webpack,通过npm来安装的 npm ...
- 牛客多校第十场 H Stammering Chemists 判断图同构
题意: 给出一个无向图,表示一种有机物质的结构式,问你这个有机物质是列表中的哪个. 题解: 判断图同构需要枚举全排列以对应点,但是此题中几乎只需要将点度数排序后一个一个比较,对于甲基位置再加个特判即可 ...
- python从入门到大神---1、初始化实例、类属性、方法
python从入门到大神---1.初始化实例.类属性.方法 一.总结 一句话总结: 方法不加括号是代码段:感觉python方法和js,php很类似,不加括号是代码段,加括号变成方法,比如f,f() 1 ...
- python入门 元组tuple (三)
什么if while语句了 列表字典都太简单了 ,我直接跳过了, 开始写tuple了 增 元组格式是写在括号里,注意与列表(写在中括号里)的区别 tup1 = ('math', 'beijing', ...
- Java-Class-@I:org.junit.Test
ylbtech-Java-Class-@I:org.junit.Test 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 1. package org.junit; import ...
- Rabbit MQ 客户端 API 进阶
之前说了一些基础的概念及使用方法,比如创建交换器.队列和绑定关系等.现在我们再来补充一下细节性的东西. 备份交换器 通过声明交换器的时候添加 alternate-exchange 参数来实现. Con ...
- 字符编码到python编辑器流程
字符(存储了信息的东西)编码(): 键盘发送的是电流-->主机(内存)接受到电流(当作010100110101)-->显示屏 接受电流(当作010100110101------->键 ...