java1.17知识点回顾


由于还在学习markdown语法,所以里面会包含相关的笔记。
以下按不同程序分类:

出租车计费

1.常量定义方式:

  常量名注意命名规范:多个单词用下划线隔开,所有单词字母大写,要求见名知意;

其中上面一行的缩进来源于两个  

还可以用来缩进方法有3个:
  1.使用特殊占位符:依据所占据空格大小由大到小排序:
            / >  / >  / >  
  2.使用<br />标签;
  2.在行尾敲击两个以上空格,然后回车;

另:退出当前层引用,需要有当前层引用的退出。详见参考文档4.
参考文档:
1.缩进和换行部分
2.占据空格大小关系
3.字体颜色更改
4.引用问题
5.其他

public static final 数据类型 常量名 = 数值;
//例如:
public static final int BASIC_PRICE = 2;

2.关于一组数学函数:

Math.ceil(double a);//向上取整
Math.floor(double b);//向下取整
Math.Round(double c);//四舍五入

参考文档

3.日期格式转换

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//上面构造函数参数为指定的格式,如: HH:mm ,也可以只有时间,不包含日期
String date =2021-01-17 14:19:52”;
int day = format.parse(date).getDate();//返回值为整形,对应上述代码1;此种方式不建议使用,后续可能不再支持,考虑Calendar类
long time = format.parse(date).getTime();//返回一个长整型的时间戳

4.注意三目运算符的使用,如果满足if-else的情况,可以考虑使用。



人工智障

public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String question;
		while(true) {
			question = sc.next();
			
			//!!!!!注意这里的替换是只要符合全部替换!!!!
			
			question = question.replace("吗", "");//替换指定字符串中的特定内容
			question = question.replace("?", "!");
			question = question.replace("我", "我也");
			System.out.println(question);
		}

	}

计算某一年某月的天数

注意闰年判断条件、以及三目运算符的使用。

package chap2;

import java.util.Scanner;

public class CalDay {
/**
 * 计算任意年份天数
 * author:黄浩
 * time:2021年1月16日22:26:36
 * @param args
 */
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("计算输入年月的天数程序");
		System.out.println("请输入年份:");
		int year = sc.nextInt();
		System.out.println("请输入月份:");
		int month = sc.nextInt();
		boolean isLeapYear = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;	//是否闰年
		int days = isLeapYear?29:28;//依据是否闰年选择对应天数
		String yearName =isLeapYear ? "闰年":"平年";//依据是否闰年选择对应名称
		switch(month) {
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:System.out.println(year+"年("+yearName+")"+month+"月是大月,有31天");break;//已上都是大月
			case 4:
			case 6:
			case 9:
			case 11:System.out.println(year+"年("+yearName+")"+month+"月是小月,有30天");break;
			case 2:System.out.println(year+"年("+yearName+")"+month+"月,有"+days+"天");break;//依据上述变量选择的值
		}
	}

}

指定图形输出(部分):

package chap2;

public class Figure {
	/**
	 * 输出指定图形(循环练习)
	 * author:黄浩
	 * time:2021年1月16日22:27:07
	 * @param args
	 */
	public static void main(String[] args) {
//		*
//		***
//		*****
//		*******
		for(int i = 0;i < 4;i++) {
			for(int j = 0;j < 2*i+1;j++) {
				System.out.print("*");
			}
			System.out.println();
		}
		
		System.out.println("------------我是可爱的分割线------------------");
		
//		      *               空格也是一种符号
//		    ***
//		  *****
//		*******
		for(int i = 0;i < 4;i++) {//控制行数
			for(int j = i+1;j < 4;j++) {//每一行的空格数量
				System.out.print("  ");
			}
			for(int j = 0; j<2*i+1;j++) {//每一行的星号数量
				System.out.print("*");
			}
			System.out.println();//一行结束
		}
		
		
		System.out.println("------------我是可爱的分割线------------------");
//	      *               
//	    ***
//	  *****
//	*******
//	  *****
//	    ***
//	      *    
		int row = 7;//总行数
		int maxRow = (row+1)/2;//正三角的最大行数 公式=(总行数+1)/2
		//上三角
		for(int i = 0; i <maxRow; i++ ) {//上三角形的行数
			//每行开始
			for(int j = i+1;j < maxRow;j++) {//上三角的空格数 (依照视频里的关系:上三角当前行空格数=上三角总行数-(当前所在行+1))
				System.out.print("  ");
			}
			for(int j = 0;j < 2*i+1;j++) {//星号个数=2*当前行+1
				System.out.print("*");
			}
			//每行结束
			System.out.println();//行尾换行
		}
		//下三角
		for(int i = row-maxRow; i > 0;i-- ) {//减去上三角行数即为下三角行数
			//每行开始
			for(int j = 0;j <= maxRow-i-1;j++) {//每行空格数量=最大行号-当前行号,由于j初值为0,再减一
				System.out.print("  ");
			}
			for(int j = 0; j <= 2*(i-1); j++) {//每行星号数量=2*当前行号-1,
				//表达式为(2*i-1)-1
				//第一个括号内为公式,由于j初值为0,还需再减一,提取公因式即为2*(i-1)
				System.out.print("*");
			}
			//每行结束
			System.out.println();//行尾换行
		}
		System.out.println("------------我是可爱的分割线------------------");
//		                        空格 星 空格 星
//	      *              		 	3 	1
//	    *   *						2	1  	1  		1
//	  *      *						0 1 3 5 7 9 11 13
//	 *         *					1 2 3 4 5 6 7 8
//	  *      *					   -1 -1 0 1 2 3
//	    *  *
//	      *    	
		for(int i = 1; i <= maxRow;i++) {
			for(int j = 1; j <=maxRow-i;j++) {
				System.out.print(" ");
			}
			System.out.print("*");
			switch(i) {
			case 1: break;
			case 2: System.out.print(" ");break;
			default : {
				for(int k = 1; k <= i*2-3; k++) {
					System.out.print(" ");
				}
			}
			}
			if( i > 1 ) {
				System.out.print("*");
			}		
			System.out.println();
		}
		//下三角
		for(int i = row-maxRow; i > 0 ; i--) {
			for(int j = 0; j < maxRow-i; j++) {
				System.out.print(" ");
			}
			System.out.print("*");
			switch(i) {
				case 1: break;
				case 2: System.out.print(" ");break;
				default : {
					for(int k = 1; k <= i*2-3; k++) {
					System.out.print(" ");
					}
				}
			}
			if( i > 1 ) {
				System.out.print("*");
			}		
			System.out.println();
		}
	}
}

效果图:

输出图形

水仙花数(NarcissisticNumber/Pluperfect digital invariant/PPDI)

这里注意的就是立方有对应的数学函数

Math.pow(double a,double b);//a表示底数,b表示次幂

 翻阅源码又发现底层用了strictfp关键字,即FP-strict,精确浮点数。他可以用来声明一个类,接口和方法,使之符合浮点规范[IEEE-754]。可以使计算结果不会随不同硬件平台运行导致结果不一致。 特 别 的 ‾ \underline{特别的} ,如果一个类被strictfp关键字修饰,那么其中所有的方法必须都是strictfp的。剩下实现没有关注,有点复杂,之后看完了,再更新。

九九乘法表

贴上代码先:

package chap2;

public class TimesTable {
	/**
	 * 九九乘法表
	 * author:黄浩
	 * time:2021年1月16日22:32:45
	 * @param args
	 */

	public static void main(String[] args) {
		for(int i = 1;i <= 9;i++) {//行数
			for(int j = 1; j <= i;j++) {//每行的列数
				System.out.print("\t"+j+"*"+i+"="+i*j);//显示格式有问题,但是在dos窗口下正常
			}
			System.out.println();
		}

	}

}

运行截图:

 这里有对齐问题,eclipse中打印不一致,但我检查没有逻辑问题,于是我用dos窗口打印,结果发现并没有问题,我也不清楚具体什么情况,希望有知道的人指点下呗。
eclipse:(该问题已解决,是控制台字体的锅,我用的是方正静蕾简体,换成其他的输出正常,我居然没想到!)
eclipse中显示问题
dos:
dos显示正常

最后关于使用eclipse时快捷键相关问题

代码提示

参考这篇文档
需要注意的是快捷键之间的冲突问题即可。
 就到这里了,下次见。
                                   sue

                             2021年1月17日15:08:48

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值