软件工程Java实验5

7-1 各类字符数 (20分)

从键盘输入一个字符串,程序输出该字符串中的大写英文字母数,小写英文字母数以及非英文字母数

输入格式:
字符串

输出格式:
大写英文字母数 小写英文字母数 非英文字母数

输入样例:
在这里给出一组输入。例如:

Hello My Dear Friend, I Miss You Very Much!

输出样例:
在这里给出相应的输出。例如:

9
24
10

答案:

import java.util.Scanner;
public class Main {
	public static void main(String []args)
	{
		Scanner cin=new Scanner(System.in);
		String s=cin.nextLine();
		char[]ns =s.toCharArray();
		int upcount=0;
		int lowcount=0;
		int count=0;
		for(int i=0;i<ns.length;i++)
		{
			if(ns[i]>=65&&ns[i]<=90)
				upcount++;
			else if(ns[i]>=97&&ns[i]<=122)
			{
				lowcount++;
			}
			else count++;
		}
		System.out.println(upcount);
		System.out.println(lowcount);
		System.out.println(count);
		cin.close();
	}
}

7-2 数据类型判断 (20分)

从键盘分别输入通过空格分割的整型(int)、浮点型(double)、字符型(String)、布尔型(boolean),根据读取的内容判断他们的类型并将他们解析为正确的对象,并都放到一个数组中。输出各个对象的类型

输入格式:
字符串

输出格式:
数据类型

输入样例:
在这里给出一组输入。例如:

2.1 true 123 abcde

输出样例:
在这里给出相应的输出。例如:

double boolean int String

答案

import java.util.Scanner;
public class Main {
	public static void main(String []args)
	{
		Scanner cin=new Scanner(System.in);
		String s;
		int j=0;
		while(cin.hasNext()){
				if(j!=0)
					System.out.print(" ");
				if(cin.hasNextInt()){
		                System.out.print("int");
		            }
		        else if(cin.hasNextDouble()){
		                System.out.print("double");
		                }
		        else if(cin.hasNextBoolean()){
		        		System.out.print("boolean");
		        }
		        else System.out.print("String");
		            cin.next();
		            j=1;
		        }
	}
}

7-3 我也会加密 (20分)

字符串加密可以理解为对字符串的一种固定方式的变形,现定义一种基于种子数字的加密方法,首先计算种子数字,计算方法为将该字符串的长度对5求余加1,以该数字为间隔,得到原字符串的子串并求逆得到最终的密码。

输入格式:
原字符串

输出格式:
加密后的字符串

输入样例:
在这里给出一组输入。例如:

abcdefghijklmn

输出样例:
在这里给出相应的输出。例如:

kfa

答案



import java.util.Scanner;
public class Main{
	public static void main(String []args)
	{
		Scanner cin=new Scanner(System.in);
		String s=cin.nextLine();
		int mm=s.length()%5+1;
		int j=0;
		int length;
		if(s.length()%mm==0)//这里需要注意
			length=s.length()/mm;
		else
		    length=s.length()/mm+1;
		char []ns=new char[length];
		for(int i=0;i<length;i++)
		{
			if(j<=s.length())
			  ns[i]=s.charAt(j);
			else break;
			j+=mm;
		}
		for(int i=0;i<ns.length/2;i++)
		{
			char t=ns[i];
			ns[i]=ns[ns.length-i-1];
			ns[ns.length-i-1]=t;
		}
		System.out.println(ns);
//		String nns=ns.toString();
//		String nnns=new StringBuffer(nns).reverse().toString();
//		
//		System.out.println(nnns);
		cin.close();
	}
}

7-4 比较日期 (20分)

从命令行输入两个日期(格式为MM,dd,yyyy),程序解析日期,判断两个日期的大小,以及两个日期的间隔天数。 提示:月份是从0开始

输入格式:
两个日期

输出格式:
日期大小关系 间隔天数(正数)

输入样例:
在这里给出一组输入。例如:

04,12,2012 04,21,2012

输出样例:
在这里给出相应的输出。例如:

<
9

答案



import java.util.*;
import java.text.SimpleDateFormat;
import java.text.ParseException;
 

public class Main{
	public static void main(String []args) throws ParseException
	{
		Scanner cin=new Scanner(System.in);
		String str1=cin.next();
		String str2=cin.next();
		SimpleDateFormat df=new SimpleDateFormat("MM,dd,yyyy");
		Date d1=df.parse(str1);
		Date d2=df.parse(str2);
		
		char a;
		if(d1.after(d2)) a='>';
		else if(d1.before(d2)) a='<';
		else a='=';
		
		System.out.println(a);
		int b= (int) ((d2.getTime() - d1.getTime()) / (1000 * 60 * 60 * 24));//毫秒转化为天数
		System.out.println(Math.abs(b));
		cin.close();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值