1.编写一个方法,找到两个日期格式的字符串的最大值:
方法声明如下:
public static Date max(String date1, String date2)
package pro_0412_homework;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 1.编写一个方法,找到两个日期格式的字符串的最大值:
方法声明如下:
public static Date max(String date1, String date2)
*/
public class HomeWork01
{
public static void main(String[] args)
{
Date d=HomeWork01.max("2019-04-13 20:20:00", "2019-04-13 20:10:00");
System.out.println(d);
}
public static Date max(String date1, String date2)
{
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1 = null;
Date d2 = null;
try {
d1=sdf.parse(date1);//String-->date
d2=sdf.parse(date2);
} catch (ParseException e) {
e.printStackTrace();
}
long lon1=d1.getTime();//date-->long
long lon2=d2.getTime();
/*System.out.println(lon1);
System.out.println(lon2);*/
long lon=Math.max(lon1, lon2);
Date d=new Date(lon); //long--->date
return d;
}
}
2.输入日期格式字符串作为商品的生产日期,输入保质期(天) ;计算截止
到今天,该商品还有多少天会过保质期
>1、控制台输入字符串转为日期格式
>2、将输入日期增加保质期天数
>3、取得当前系统日期,比较两个日期,如果过期输出“该商品已经过期”
请输入商品的生产日期: (yyyy-MM-dd)
2017-1-1
输入保质期(天):
30
今日期为: 2018-01-17
该商品已经过期
>4、如果没有过期,输出天数
请输入商品的生产日期: (yyyy-MM-dd)
2018-1-1
请输入保期(天) :
30
今天期为: 2018-01-17
还有13天过期
package pro_0412_homework;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class HomeWork02
{
public static void main(String[] args)
{
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");//定义日期格式
Scanner in=new Scanner(System.in);
System.out.println("请输入商品的生产日期: (yyyy-MM-dd)");
String sd=in.nextLine();//生产日期
try {
Date sc=sdf.parse(sd);//生产日期字符串 --> 日期格式
System.out.println("输入保质期(天):");
int t=in.nextInt();//保质期天数
Date jt=sdf.parse(sdf.format(new Date()));//今天date类型
System.out.println("今日期为:"+sdf.format(new Date()));
Calendar calendar=Calendar.getInstance();//创建一个实例
calendar.setTime(sc);//实例化一个Calendar。
calendar.add(Calendar.DATE, t);//给当前日期加上指定天数,
Date c=calendar.getTime();//到期时间
if(c.compareTo(jt)==-1) {
System.out.println("该商品已经过期");
}else {
long millionTime=c.getTime()-jt.getTime(); //得到毫秒数
//System.out.println(millionTime);
System.out.println("还有"+(millionTime/1000/60/60/24 )+ "天过期");
}
} catch (ParseException e) {
e.printStackTrace();
}
}
}
3、生成十个0~100之间的随机数,放到数组中,然后排序输出。
(知识点: Math类取整,获得随机数等) [必做题]
package pro_0412_homework;
/**
* 3、生成十个0~100之间的随机数,放到数组中,然后排序输出。
(知识点: Math类取整,获得随机数等) [必做题]
*/
public class HomeWork03
{
public static void main(String[] args)
{
int[] arr=new int[10];
for(int i=0;i<arr.length;i++)
{
arr[i]=(int)(Math.random()*101);
//System.out.println(arr[i]);
}
//使用冒泡排序使数组元素从 小到大 排序
for(int i=0;i<arr.length-1;i++) //遍历几轮
{
for(int j=0;j<arr.length-1-i;j++)
{
if(arr[j]>arr[j+1]) //如果要显示从大到小则:arr[j]<arr[j+1]
{
int temp=arr[j];//定义一个临时变量
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
//遍历输出数组
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i] + "\t");
}
}
}
1、巴黎时间比北京时间晚7个小时,纽约时间比北京时间晚12个小时 ,试编写一程序,
根据输入的北京时间输出相应的巴黎和纽约时间。[选做题]
package pro_0412_homework;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
/**
* 1、巴黎时间比北京时间晚7个小时,纽约时间比北京时间晚12个小时 ,试编写一程序,
根据输入的北京时间输出相应的巴黎和纽约时间。[选做题]
*/
public class HomeWork04
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.println("请输入北京时间(yyyy-MM-dd HH:mm:ss):");
String sd=in.nextLine();//得到输入的日期字符
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date d = sdf.parse(sd);
long ld=d.getTime();//得到long
Date d3=new Date(ld-7*60*60*1000);
Date d4=new Date(ld-12*60*60*1000);
DateFormat dFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //HH表示24小时制;hh表示12小时制;
System.out.println("巴黎时间为:"+dFormat.format(d3));
System.out.println("纽约时间为:"+d4);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。[选做题]
package pro_0412_homework;
import java.util.Scanner;
/**
* 4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。
[选做题]
*/
public class HomeWork06
{
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str1=in.nextLine();
HomeWork06.show2(str1);
}
public static void show(String str1)
{
int chines=0;
int english=0;
int num=0;
for(int i=0;i<str1.length();i++)
{
char zf=str1.charAt(i);
if(zf>='A'&& zf<='Z' || zf>='a'&& zf<='z')
{
english++;
}
else if(zf>='0' && zf<='9')
{
num++;
}else
{
chines++;
}
}
System.out.println("chines:"+chines+" english:"+english+" num:"+num);
}
public static void show2(String str1)
{
int chines=0;
int english=0;
int num=0;
for(int i=0;i<str1.length();i++)
{
char zf=str1.charAt(i);
/*Character.UnicodeBlock ub = Character.UnicodeBlock.of(zf);
System.out.println(ub);//不可取*/
//System.out.println(Character.getType(zf));//小写字母:1 大写字母:2 汉字:5 数字:9
if(Character.getType(zf)==1 || Character.getType(zf)==2)
{
english++;
}
else if(Character.getType(zf)==9)
{
num++;
}else if(Character.getType(zf)==5)
{
chines++;
}
}
System.out.println("chines:"+chines+" english:"+english+" num:"+num);
}
}
5、有一种数叫回文数,正读和反读都一样,如12321便是一个回文数.
编写一个程序,从命令行得到一个整数,判断该数是不是回文数。 [选做题]
package pro_0412_homework;
import java.util.Scanner;
/**
* 5、有一种数叫回文数,正读和反读都一样,如12321便是一个回文数.
编写一个程序,从命令行得到一个整数,判断该数是不是回文数。
[选做题]
*/
public class HomeWork07
{
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
System.out.println("请输入整数:");
String str1=in.nextLine();
HomeWork07.show(str1);
}
public static void show(String str1) //这个方法不能输出 该数是回文数,存在问题
{
for(int x=0,y=str1.length()-1;x<y;x++,y--)
{
//System.out.println(0);
if(str1.charAt(x)!=str1.charAt(y))
{
System.out.println("该数不是回文数");
break;
}
}
}
public static void show2(String str1)
{
int sum=0;
for(int x=0,y=str1.length()-1;x<y;x++,y--)
{
if(str1.charAt(x)==str1.charAt(y))
{
sum++;
}
}
if(sum==(str1.length()/2))
{
System.out.println("该数是回文数");
}else
{
System.out.println("该数不是回文数");
}
}
}
输入一个手机号码,将中间四位使用星号替代。
例如:
输入: 13312349876
输出: 133****9876
package pro_0412_homework;
import java.util.Scanner;
/**
* 输入一个手机号码,将中间四位使用星号替代。
例如:
输入: 13312349876
输出: 133****9876
*/
public class HomeWork08
{
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
System.out.println("请输入手机号:");
String str1=in.nextLine();
StringBuffer str2=new StringBuffer(str1);
System.out.println(str2.replace(str2.length()/2-2, str2.length()/2-2+4, "****"));
}
}
2. 分析如下程序,并写出结果.
知识点: 基本数据类型转换为包装类、自动装箱和自动拆箱
package pro_0412_homework;
/**
* 2. 分析如下程序,并写出结果.
知识点: 基本数据类型转换为包装类、自动装箱和自动拆箱
*/
public class HomeWork11
{
public static void main(String[] args)
{
Integer x=new Integer(10);
Integer y=new Integer(10);
System.out.println(x==y);//false
System.out.println(x.equals(y));//true
}
}
1·编写一个截取字符串的函数,输入为一个字符串和字节数,
输出为按字节截取的字符串,但要保证汉字不被截取半个,
如"我ABC", 4,应该截取"我AB",输入"我ABC汉DEF", 6,
应该输出"我ABC",而不是"我ABC+汉的半个"。
知识点: String中常用的方法
gbk中一个汉字两个字节
package pro_0412_homework;
import java.util.Scanner;
public class HomeWork14
{
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
System.out.println("请输入一个字符串:"); //我ABC汉DEF
String str1=in.nextLine();
System.out.println("请输如要截取的字节数:");//6
int j=in.nextInt();
byte[] bstr1=str1.getBytes(); //String-->byte字节数组
//System.out.println(bstr1.length);//字节数组的长度 //10
//System.out.println(bstr1[j]);//如果是汉字为负数
if(bstr1[j]<0)//遇到了汉字 gbk中一个汉字两个字节,UTF-8中占3个字节
{
System.out.println(new String(bstr1,0,--j));//将byte数组转为String输出
}
else
{
System.out.println(new String(bstr1,0,j));
}
}
}