概述
1、实验题目:字符串加密
键盘输入一个原始字符串作为明文,然后使用加密方法加密,再对加密字符串进行解密。样例如下图,加密方法自定,完成其功能并测试。
import java.util.Scanner;
public class S5_1 {
public static void main(String[] args){
Scanner sca=new Scanner(System.in);
Encryption encry=new Encryption();
System.out.print("明文:");
encry.str1=sca.nextLine();
System.out.println("*********************");
System.out.println("加密方法:每个字符的ASCII码加1");
System.out.println("*********************");
System.out.print("密文:");
encry.JiaMi();
System.out.println("*********************");
System.out.print("解密:");
encry.JieMi();
}
}
class Encryption{
String str1;
char[] c;
void JiaMi(){
c=str1.toCharArray();
for(int i=0;i<c.length;i++) {
c[i] = (char) (c[i] + 1);
}
System.out.println(new String(c));
}
void JieMi(){
for (int i=0;i<c.length;i++){
c[i]=(char) (c[i]-1);
}
System.out.println(new String(c));
}
}
2、实验题目:模拟用户登录
编写一个程序,模拟用户登录。程序要求如下:
(1)用户名和密码正确(不区分大小写),提示“登录成功”,并打开Windows的计算器程序;
(2)用户名或密码不正确,提示“用户名或密码错误”;
(3)总共有3次登录机会,超过3次,则提示“登录失败,无法再继续登录”。
import java.util.Scanner;
import java.io.*;
public class S5_2 {
public static void main(String[] args) {
Scanner sca=new Scanner(System.in);
User user=new User();
int i;
for(i=2;i>=0;i--) {
System.out.println("~~~~~~用户登录~~~~~~~");
System.out.print("用户名:");
user.name = sca.nextLine().toLowerCase();
System.out.print("密码:");
user.pwd = sca.nextLine();
user.i=i;
user.login();
}
}
static class User{
static String username = "admin";
static String password = "123";
String name;
String pwd;
int i;
public void login(){
if (name.equals(username) && pwd.equals(password)) {
System.out.println("登录成功,欢迎您:" + username);
try {
Runtime.getRuntime().exec("cmd /c start C:\WINDOWS\system32\calc.exe");
} catch (IOException e) {
throw new RuntimeException(e);
}
} else {
if (i==0){
System.out.println("你的登录次数已经用完.");
}else {
System.out.println("~~~~~~~~~~~~~~~~~~~~");
System.out.println("登录失败,你今天还有" + (i) + "次登录的机会!");
}
}
}
}
}
3、实验题目:统计字符个数
从键盘输入一个字符串,分别统计该字符串中所有大写字母、小写字母、数字、其它字符的个数,并分类输出这些字符和统计结果。(提示:不考虑字符内容,例如:Hello123World,大写2个,小写8个,数字3个。)
import java.util.Scanner;
public class S5_3 {
public static void main(String[] args){
Scanner sca=new Scanner(System.in);
System.out.print("请输入一个字符串:");
String str=sca.nextLine();
int smallCount=0;
int bigCount=0;
int numCount=0;
int otherCount=0;
for (int i = 0; i < str.length(); i++) {
char x = str.charAt(i);
if (x>=65&&x<=90) {
bigCount++;
} else if(x>=97&&x<=122) {
smallCount++;
}else if (x>=48&&x<=57) {
numCount++;
}else {
otherCount++;
}
}
System.out.println("大写字母有"+bigCount+"个");
System.out.println("小写字母有"+smallCount+"个");
System.out.println("数字有"+numCount+"个");
System.out.println("其他字符有"+otherCount+"个");
}
}
4、实验题目:字符串缓冲区练习
(1)使用StringBuffer类对键盘输入的字符串进行反转。
(2)使用String和StringBuffer类分别对数组进行字符串拼接,使其变成一个字符串。
import java.util.Scanner;
public class S5_4 {
public static void main(String[] args) {
Scanner sca=new Scanner(System.in);
StringBuffer sb=new StringBuffer();
System.out.println("~~~~~~~~~~~~~~~~~~~~");
System.out.print("请输入要反转的字符串:");
String str=sca.nextLine();
sb.append(str);
System.out.println("反转后的字符串:"+sb.reverse());
int n;
System.out.print("请输入字符串数组的长度:");
n=sca.nextInt();
String[] str1=new String[n];
for(int i=0;i<str1.length;i++){
str1[i]=sca.next();
}
for(int i=0;i<str1.length;i++){
System.out.println(str1[i]+" ");
}
System.out.println("String类");
String s="";
for(int i=0;i<str1.length;i++){
s+=str1[i];
}
System.out.println(s);
System.out.println("StringBuffer类");
StringBuffer sb1=new StringBuffer();
for(int i=0;i<str1.length;i++){
sb1.append(str1[i]);
}
System.out.println(sb1);
}
}
5、实验题目:生成验证码
使用Random类创建一个6位的验证码,其中包含数字、字母的组合,并通过键盘输入该验证码,验证通过(不区分大小写)时提示“恭喜验证成功!”,否则提示“验证失败!”。
import java.util.Random;
import java.util.Scanner;
public class S5_5 {
public static void main(String[] args) {
Scanner sca=new Scanner(System.in);
System.out.println("~~~~~~~~~~~~~~~~~~~");
int a = 1234567890;
String b ="abcdefghijklmnopqrstuvwxyz";
String B=b.toUpperCase();
String c=a+b+B;
char[] d=c.toCharArray();
System.out.println("验证码");
Random random=new Random();
String f="";
for(int i=0;i<6;i++){
int index = random.nextInt(d.length);
f+=d[index];
}
System.out.println(f);
System.out.print("请输入验证码:");
String s=sca.nextLine();
if(s.equalsIgnoreCase(f)){
System.out.println("恭喜验证成功!");
}else{
System.out.println("验证失败!");
}
}
}
6、实验题目:春节倒计时
根据所学知识,计算明年(兔年)春节的倒计时天数并输出:“距离兔年春节还有***天”。
import java.util.*;
public class S5_6 {
public static void main(String[] args){
Date date=new Date();
System.out.print("当前日期是");
System.out.println(date.getYear()+1900+"年"+date.getMonth()+1+"月"+date.getDate()+"日");
Judge j=new Judge();
int x=j.judge(date.getYear()+1900);//今年天数
int y=j.judge(date.getYear()+1900+1);//明年天数
Calendar c1=Calendar.getInstance();
Calendar c2=Calendar.getInstance();
c2.set(Calendar.YEAR,2023);
c2.set(Calendar.MONTH,0);
c2.set(Calendar.DAY_OF_MONTH,1);
c2.set(Calendar.HOUR,0);
c2.set(Calendar.MINUTE,0);
c2.set(Calendar.SECOND,0);
long days=(c2.getTimeInMillis()-c1.getTimeInMillis())/(1000*60*60*24)+y;
System.out.println("距离下一年的春节还有"+days+"天");
}
}
class Judge{
public int judge(int y){
int x;
if((y%4==0 && y%100!=0) || (y%400==0)){
x=366;
}else{
x=355;
}
return x;
}
}
7、实验题目:二月天
二月是一个有趣的月份,平年的二月有28天,闰年的二月有29天。编写一个程序,从键盘输入年份,根据输入的年份计算这一年的二月有多少天。
import java.util.Scanner;
public class S5_7 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入你要判断的年份:");
System.out.println();
int y = input.nextInt();
if((y%4==0 && y%100!=0) || (y%400==0)){
System.out.println("该年为闰年,二月有29天");
}else{
System.out.println("该年为平年,二月有28天");
}
}
}
8、实验题目:正则表达式。(选做)
“中华人民共和国成立于1949年10月1日”,利用正则表达式提取出其中的数字。
public class S5_8 {
public static void main(String[] args) {
String s="中华人民共和国成立于1949年10月1日";
char[] ch=s.toCharArray();
String regex="\d";
System.out.println("中华人民共和国成立于1949年10月1日");
System.out.print("通过正则表达式提取的数字为:");
for(int i=0;i<s.length();i++){
String str= String.valueOf(ch[i]);
if(str.matches(regex)){
System.out.print(ch[i]+" ");
}
}
}
}
最后
以上就是呆萌铅笔为你收集整理的Java程序设计---实验5的全部内容,希望文章能够帮你解决Java程序设计---实验5所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复