java之单例设计模式、字符串拼接、时间日历运用

单例设计模式之饿汉式

public class Singleton1 {
	//单例设计模式之饿汉式
	//1,无参构造方法私有化
	private Singleton1(){}
	//2,在类中申明本类对象,private static修饰的成员变量随着类的加载而加载,且只假造一次
	private static Singleton1 instance = new Singleton1();
	//3,提供公共访问方法
	public static Singleton1 getInstance(){
		return instance;
	}
}
public class Test1 {
	public static void main(String[] args) {
		Singleton1 instance1 = Singleton1.getInstance();
		Singleton1 instance2 = Singleton1.getInstance();
		System.out.println(instance1.equals(instance2));
	}
}

单例设计模式之懒汉式

public class Singleton2 {
	//单例设计模式之懒汉式
	//1,无参构造方法私有化
	private Singleton2(){}
	//2,在类中申明本类引用,private static修饰
	private static Singleton2 instance = null;
	//3,提供公共访问方法
	public static Singleton2 getInstance(){
		if(instance == null){
			instance = new Singleton2();
		}
		return instance;
	}
}
public class Test2 {
	public static void main(String[] args) {
		Singleton2 instance1 = Singleton2.getInstance();
		Singleton2 instance2 = Singleton2.getInstance();
		System.out.println(instance1.equals(instance2));
	}
}

作业:

//	String的主要方法有哪些
	//charAt(int):得到某个序号位置的字符。getBytes():得到当前字符串转换成的字节数组。int compareTo(String):比较两个字符串的大小。
	//startWith(String):判断字符串是否以某个字符串开头。endsWith(String):判断字符串是否以某个字符串结尾。
	//lastIndexOf(String):从后面开始查找。
	//subString(int):从某个位置开始截取字符串后面所有的内容。concat(String):拼接两个字符串。
	//replaceAll(String, String):将字符串中的某个字符串替换成其他内容,替换所有的。
	//toLowerCase():转换成小写。intern():得到当前字符串对应的常量池中的内容。
//	String和StringBuilder 的区别
	//String:字符串常量,线程安全的,如果要操作少量的数据用 String;StringBuilder:字符串变量,线程非安全的,
//	StringBuilder和StringBuffer的区别
	//StringBuilder:字符串变量,线程非安全的,单线程操作字符串缓冲区下操作大量数据 ;StringBuffer:字符串变量,线程安全的,多线程操作字符串缓冲区下操作大量数据 

1、输入邮箱和密码,进行登录验证:

// 1)判断邮箱和密码是否为空
// 2)判断密码不能小于6位
// 3)判断@的位置在.之前
// 4)判断邮箱为zhangsan@163.com,密码为666666就登录成功
// 5)截取@前面的用户名,输出:欢迎, xxx

public class Demo02 {
	public static void main(String[] args) {
//		1、输入邮箱和密码,进行登录验证:
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入163邮箱账号");
		String m = sc.nextLine();
//		1)判断邮箱和密码是否为空
		//trim():去掉字符串两边的空格。isEmpty():判断字符串是否为空。	
		String user = m.trim();
		if(user.isEmpty()){
			System.out.println("您输入账号为空");
			return;
		}
		System.out.println("请输入密码");
		String n = sc.nextLine();
		String username = n.trim();
		if(username.isEmpty()){
			System.out.println("您输入密码为空");
			return;
		}
//		2)判断密码不能小于6位
		//length():得到字符串的长度。
		if(username.length() < 6){
			System.out.println("您输入密码小于6位数");
			return;
		}
//		3)判断@的位置在.之前
		//indexOf(String):判断当前字符串是否包含某个字符串,如果包含,返回开始的位置,如果不包含,返回-1。
		if(user.indexOf("@") > user.indexOf(".")){
			System.out.println("您的账号格式输入有误");
			return;
		}
//		4)判断邮箱为zhangsan@163.com,密码为666666就登录成功
		//equals(String):判断当前字符串与其他字符串是否相同。
		if(user.equals("zhangsan@163.com") && username.equals("666666")){
//		5)截取@前面的用户名,输出:欢迎, xxx
			//subString(int, int):从某个位置开始截取字符串,到达另一个位置为止。
			System.out.println("欢迎,"+user.substring(0, (user.indexOf("@")))+"用户,登陆成功");
		}else {
			System.out.println("您的账号或密码输入有误");
		}
	}
}

2、nextLine()输入一个字符串,包含多个单词,单词之间以空格分隔;要求将所有单词连接起来,并且首字母大写;如:输入 good good study 获得:GoodGoodStudy

// 1、分割 2、截取首字母 3、转大写 4、拼接

public class Demo03 {
	public static void main(String[] args) {
		// 2、nextLine()输入一个字符串,包含多个单词,单词之间以空格分隔;要求将所有单词连接起来,并且首字母大写;
		//如:输入 good good study 获得:GoodGoodStudy
		// 1、分割 2、截取首字母 3、转大写 4、拼接
		// split(String):依据某一个字符串进行切割,变成一个字符串数组。
		// toUpperCase():转换成大写。static join(String,String...)将一个数组中的内容通过某个符号拼接成一个字符串。
		// 输入一个字符串
		Scanner Sc = new Scanner(System.in);
		System.out.println("输入一个字符串,包含多个单词,单词之间以空格分隔");
		String str = Sc.nextLine();
		// 1对输入的字符串按照空格分割为多个字符串
		String[] s = str.split(" ");
		System.out.println("将字符串中单词之间的空格去除后输出:");
		for (String string : s) {
			System.out.print(string);
		}
		System.out.println("\n"+"将字符串中单词的首字母转换为大写后输出:");
		for (int i = 0; i < s.length; i++) {
			//s[i].substring(0, 1).toLowerCase()将单词首字母小写转为大写
			//s[i].substring(1).toLowerCase()将单词首字母除外的字母大写转为小写
			//进行字符串拼接
			String s1 = s[i].substring(0, 1).toUpperCase() + s[i].substring(1).toLowerCase();
			// 将输入的字符按要求不换行输出
			System.out.print(s1);
		}
	}
}

3、

// 1) 以格式“2017/08/07 12:00:01 上午” 显示当前时间;
// 2) 输入日期,格式为"2017/08/07 08:12"
// 输出该日期后的10天是什么时间

public class Demo04 {
	public static void main(String[] args) {
//		3、
//		1) 以格式“2017/08/07 12:00:01 上午” 显示当前时间;
		//
//		2) 输入日期,格式为"2017/08/07 08:12"
		//
//		输出该日期后的10天是什么时间
		// 得到当前日期时间
		Date now = new Date();
		System.out.println(now);
		// 格式化日期时间
		// yyyy表示年,MM表示月, mm表示分钟,dd表示日期,HH表示24小时制的小时,hh表示12小时制的小时,ss表示秒,SSS表示毫秒
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/ HH:mm:ss 上午");
		// 将时间格式化成字符串
		String string = sdf.format(now);
		System.out.println(string);
		SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd/ HH:mm");
		String str = "2017/08/07/ 08:12";
		try {
			// 将字符串格式化成时间
			Date date = df.parse(str);
			Calendar cal = Calendar.getInstance();
			cal.setTime(date);
			cal.add(Calendar.DAY_OF_YEAR,10);
			System.out.println("该日期10天后的日期为:"+df.format(cal.getTime()));
		} catch (ParseException e) {
			System.out.println("你输入的格式不正确");
			e.printStackTrace();
		}
	}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值