Java笔记(String类,StringBuffer类,StringBuilder类、Date 时间类、Calendar 日历类)

本文详细介绍了Java中的String、StringBuffer和StringBuilder类的使用,包括它们的区别及操作方法。同时,讲解了Date时间类的基本操作和Calendar日历类的常见功能,如获取当前时间、日期转换等。此外,还提供了一个打印某个月日历的案例,展示了如何利用Calendar类实现这一功能。
/**
 * String类,StringBuffer类,StringBuilder类
 * Date 时间类
 * Calendar 日历类
 */



1.new String()与直接赋值的区别
	String name = new String("张三");	//张三在堆中
	String name2 = "张三";				//张三在栈中

2.StringBuffer(带缓冲区的字符串)
	StringBuffer sb = new StringBuffer("1234");
	
	2.1.追加方法(在末尾)
		sb.append("5678");

	2.2.反转方法
		sb.reverse();

	2.3.插入方法(在指定下标处,添加数据)
		sb.insert(0, "0");

	2.4.删除方法(从开始下标到结束下标删除,能删除开到始下标,但删除不到结束下标)
		sb.delete(0, 2);

3.String类,StringBuffer类,StringBuilder类的区别
	String(普通string类)
	StringBuffer(高级String类,操作方法较多,线程安全)
	StringBuilder(高级String类,线程不安全,方法与StringBuffer一样)

注意:数组的 length 是属性,而 String 的 length() 是方法

4.Date时间类(很多方法已过时)
	4.1.获取当前系统时间
		Date d = new Date();
	
	4.2.获取1970-01-01到当前系统时间的毫秒数
		long ms = d.getTime();

5.calendar日历类(常用)
	5.1.获取当前系统日历
		Calendar c = Calendar.getInstance();

	5.2.获取当前年份
		int year = c.get(Calendar.YEAR);

	5.3.获取当前月份(从 0 开始算)
		int month = c.get(Calendar.MONTH) + 1;

	5.4.获取当前日期
		int date = c.get(Calendar.DATE);

	5.5.获取当前星期的第几天
		int day = c.get(Calendar.DAY_OF_WEEK);

	5.6.获取当前年份的第几天
		int day2 =  c.get(Calendar.DAY_OF_YEAR);

	5.7.获取当前月份的第几个星期
		int week = c.get(Calendar.DAY_OF_WEEK_IN_MONTH);

	//等等....自己查API





案例:打印某一个月的日历
		//接收输入的年月
		Scanner sc = new Scanner(System.in);
		
		System.out.print("请输入年:");
		int year = sc.nextInt();

		System.out.print("请输入月:");
		int month = sc.nextInt();
		
		System.out.println("\n\n\n");
		System.out.println(year + " 年 " + month + " 月\n");
		System.out.println(" 日\t一\t二\t三\t四\t五\t六\n");
		
		//当前系统的日期
		Calendar c = Calendar.getInstance();
		
		//把日期设置为输入的日期
		c.set(year, month-1, 1);
		
		//月份前的空格数,也就是1号前有几个空格
		int space = c.get(Calendar.DAY_OF_WEEK) - 1;
		
		//该月份总共有多少天
		int days = c.getActualMaximum(Calendar.DATE);
		
		//循环次数,空格数 + 天数
		for(int i = 0; i < space+days; i++) {
			//打印空格
			if(i < space) {
				System.out.print("\t");
			}else {
				if((i + 1 - space) < 10) {	//个位数右对齐
					System.out.print(" " + (i + 1 - space) + "\t");
				}else {
					System.out.print((i + 1 - space) + "\t");
				}
			}
			
			//每七天换一行
			if((i+1) % 7 == 0) {
				System.out.println();
				System.out.print(" ");
			}
		}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值