Java theme3数组,String类、时间类及时间表示, 正则表达式

基础

1.

package lesson03;

import java.util.Arrays;
import java.util.Random;

public class Test01 {

	public static void main(String[] args) {
		//1.a
		int[] arr=new int[10];
		Random random=new Random();
		int max=0,min=0;
		for(int i=0;i<10;i++) {
			arr[i]=random.nextInt();
			System.out.print(arr[i]+" ");
			if(i==0) {
				max=arr[i];
				min=arr[i];
			}else {
				if(max>arr[i]) {
					max=arr[i];
				}
				if(min<arr[i]) {
					min=arr[i];
				}
			}
		}
		//1.b
		System.out.println();
		System.out.println("max:"+max+",min:"+min);
		int[] arr2=new int[8];
		int j=0;
		for(int ar:arr) {
			if(ar==max||ar==min) {
				continue;
			}else {
				arr2[j++]=ar;
			}
		}
		arr=arr2;
		System.out.println("减了两个后:");
		for(int ar:arr) {
			System.out.print(ar+",");
		}
		//1.c
		System.out.println();
		int[] arr3=new int[11];
		j=0;
		for(int i=0;i<8||j<11;i++) {
			if(j==0||j==5||j==10) {
				arr3[j++]=random.nextInt();
				System.out.print("新加:"+arr3[j-1]+"\t");
				i--;
			}else {
				arr3[j++]=arr[i];
			}
		}
		System.out.println();
		System.out.println("加了三个后:");
		for(int i=0;i<11;i++) {
			System.out.print(arr3[i]+",");
		}
		//1.d
		System.out.println();
		System.out.println("排序后:");
		Arrays.sort(arr3);
		for(int i=0;i<11;i++) {
			System.out.print(arr3[i]+",");
		}
		System.out.println();
		System.out.println("插入一个元素后:");
		int[] arr4=new int[12];
		for(int i=0;i<11;i++) {
			arr4[i]=arr3[i];
		}
		arr4[11]=random.nextInt();
		Arrays.sort(arr4);
		for(int i=0;i<12;i++) {
			System.out.print(arr4[i]+",");
		}
	}
		
}

2.

package lesson03;

import java.util.Scanner;

public class ChectChar {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入一串英文字母:");
		String words=sc.next();
		System.out.println("请输入一个字母:");
		String secondIn=sc.next();
		char word=secondIn.charAt(0);
		int count=0;
		for(int i=0;i<words.length();i++) {
			if(word==words.charAt(i))count++;
		}
		System.out.println("该字母在这串英文字母中出现的次数为:");
		System.out.println(count);
		sc.close();
	}

}

3.

package lesson03;

import java.util.Scanner;

public class TestSc {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		String words;
		while(true) {
			System.out.println("请输入一个5位数:");
			words=sc.next();
			if(words.length()==5)break;
		}
		for(int i=0;i<2;i++) {
			if(words.charAt(i)==words.charAt(words.length()-1-i)) {
				continue;
			}
			System.out.println("该数字不是回文数。");
			return;
		}
		System.out.println("该数字是回文数~");
	}

}

4.

package lesson03;

import java.util.Scanner;

public class CountAndSumNum {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入一个0-9的数:");
		int num=sc.nextInt();
		System.out.println("请输入叠加次数:");
		int times=sc.nextInt();
		
		int sum=0;
		int temp=0;
		for(int i=0;i<times;i++) {
			temp=temp*10+num;
			System.out.print(temp);
			System.out.print(i==times?"=":"+");
			sum+=temp;
		}
		System.out.print("="+sum);
		sc.close();
	}

}

提高

1.

package lesson02;

import java.time.Duration;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;

public class IdCardCheck {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		String nums;
		while(true) {
			System.out.println("请输入身份证号:");
			nums=sc.next();
			boolean flag=checkIdentityNum(nums);
			if(flag) {
				break;
			}
		}
		//获取生日
		String bir=nums.substring(6, 14)+"000000";
		System.out.println("这个人的生日为:");
		DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
		LocalDateTime birthDate=LocalDateTime.parse(bir,formatter);
		System.out.println(birthDate);
		
		//出生那天是那年第几周
		String birBegin=nums.substring(6,10)+"0101000000";
		LocalDateTime birBeginDate=LocalDateTime.parse(birBegin,formatter);
		
		//使用Duration计算间隔
		Duration duration1=Duration.between(birBeginDate, birthDate);
		System.out.println("这个人出生在那年的第"+(duration1.toDays()/7+1)+"周");
		
		LocalDateTime nowDate=LocalDateTime.now();
		Duration duration2=Duration.between(birthDate, nowDate);
		System.out.println("从这个人出生到现在,过去了"+duration2.toDays()/7+"周");
		sc.close();
	}

	private static boolean checkIdentityNum(String nums) {
		if(nums.length()!=18) {
			System.out.println("身份证长度不足18位,请重试。");
			return false;
		}
		String regex="^(([1-6][1-9])|50)\\d{4}"//6位地区码
				+"((18)|(19)|([23]\\d))(\\d{2})"//年
				+"((0[1-9])|((10)|(11)|(12)))"//月
				+"(([0-2][1-9])|(10)|(20)|(30)|(31))"//日
				+"(\\d{3})"//3位顺序码
				+"(\\d|X|x)";//校验码
		if(nums.matches(regex))return true;
		System.out.println("身份证格式有误,请重试。");
		return false;
	}

}

2.

package lesson02;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;

public class ForSale {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入生产日期,格式为yyyy-mm-dd(如:2008-08-08)");
		String date=sc.next()+" 00:00:00";
		DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
		LocalDateTime cDate=LocalDateTime.parse(date,formatter);
//		System.out.println(cDate);
		
		System.out.println("请输入以天为单位的保质期(如:180)");
		int limitDays=sc.nextInt();
		
		LocalDateTime endDate=cDate.plusDays(limitDays);
		switch (endDate.getDayOfWeek().getValue()) {
		case 1:
			endDate=endDate.minusDays(2);
			break;
		case 2:
			endDate=endDate.minusDays(3);
			break;
		case 3:
			endDate=endDate.minusDays(4);
			break;
		case 4:
			endDate=endDate.minusDays(5);
			break;
		case 5:
			endDate=endDate.minusDays(6);
			break;
		case 6:
			endDate=endDate.minusDays(7);
			break;
		case 7:
			endDate=endDate.minusDays(8);
			break;
		}
		
		System.out.println("这个产品的促销日在:");
		System.out.println(endDate.format(formatter)+","+endDate.getDayOfWeek());
		sc.close();
	}

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值