[Java基础](日期工具类、随机工具类、Math工具类、输入输出、分支语句、循环语句)

✨✨个人主页:沫洺的主页

📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏 

                           📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专栏

                           📖Docker专栏📖Reids专栏📖MQ专栏📖SpringCloud专栏     

💖💖如果文章对你有所帮助请留下三连✨✨

🍁日期工具类

1. 导入java.util包;

2. 构造Date、Calendar、SimpleDateFormat对象;

3. 调用时间工具类中的方法

Date

输出日期

package moming;                                          
                               
import java.util.Date;                                   
                                                         
public class Date1 {                                     
    public static void main(String[] args) {             
        Date date = new Date();                 //构造时间对象 
        System.out.println(date);               //输出日期   
    }
}
 Wed Aug 03 17:23:32 CST 2022

 获取时间戳将时间戳转换为Date

package moming;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Date1 {
    public static void main(String[] args) {
        Date date = new Date();                 //构造时间对象
        long longTime = date.getTime();         //调用getTime方法获取时间戳
        System.out.println(longTime);           //输出时间戳

        Date date1 = new Date(longTime);        //将时间戳转换为Date
        System.out.println(date1);              //输出date1
    }
}
1659518612497
Wed Aug 03 17:23:32 CST 2022

SimpllDateFormat

格式化日期

package moming;                                          
                               
import java.util.Date;                                   
                                                         
public class Date1 {                                     
    public static void main(String[] args) {             
        Date date = new Date();                 //构造时间对象  
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   //构造日期格式对象并初始化
        String newDate = sdf.format(date);       //调用format方法对date进行格式化
        System.out.println(newDate);             //输出日期
    }
}
2022-08-03 17:23:32

Calendar

将日历实例转换为Date

获取日历信息

package moming;                                          
                               
import java.util.Date;                                   
                                                         
public class Date1 {                                     
    public static void main(String[] args) {             
       Calendar calendar = Calendar.getInstance();             //获取日历实例
        Date date2 = calendar.getTime();                        //将日历实例转成Date
        System.out.println(date2);
        int yy = calendar.get(Calendar.YEAR);                    //年
        int MM = calendar.get(Calendar.MONTH)+1;                 //月
        int dd = calendar.get(Calendar.DATE);                    //日
        int HH = calendar.get(Calendar.HOUR_OF_DAY);             //时
        int mm = calendar.get(Calendar.MINUTE);                  //分
        int ss = calendar.get(Calendar.SECOND);                  //秒
        System.out.printf("%d年%d月%d日 %d:%d:%d%n",yy,MM,dd,HH,mm,ss);
    }
}
Wed Aug 03 17:23:32 CST 2022
2022年8月3日 17:23:32

 补充获取时间的方法

package moming;

import java.util.Calendar;
import java.util.Date;

public class Time2 {
        public static void main(String[] args) {
                //格式化  %n(换行)
                //%tF(年月日),%tT(时分秒),%tA(星期),%tp(上下午)
                //<(参数和前一个一致), 1$(参数和第一个一致)
                //0l代表1970年的起始日期
                System.out.printf("%tF %<tT %1$tA %<tp%n",0l);
                //当前时间
                System.out.printf("%tF %<tT %1$tA %<tp%n",new Date());
                //当前日历
                System.out.printf("%tF %<tT %1$tA %<tp%n",Calendar.getInstance());
                //七天前
                System.out.printf("%tF %<tT %1$tA %<tp%n",System.currentTimeMillis() - (1000*60*60*24*7));
                //格式化年月日
                System.out.printf("%tF %n%1$tY年%1$tm月%1$td日%n",System.currentTimeMillis());
        }
}
1970-01-01 08:00:00 星期四 上午
2022-08-03 19:38:31 星期三 下午
2022-08-03 19:38:31 星期三 下午
2022-07-27 19:38:31 星期三 下午
2022-08-03 
2022年08月03日

 解析日期

package moming;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Time3 {
    public static void main(String[] args) throws ParseException {
        //解析日期
        String date = "2022年08月03日 20:56:31";//格式要保持一致
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        Date newDate = sdf.parse(date);
        System.out.printf("%tF %<tT %<tA %<tp",newDate);
    }
}
2022-08-03 20:56:31 星期三 下午

🌺随机工具类

1. 导入java.util包;

2. 构造Random对象;

3. 调用随机工具类中的方法

 随机ID随机布尔随机数(0~6)不包含6

package moming;

import java.util.Random;
import java.util.UUID;

public class Random1 {
    public static void main(String[] args) {
        UUID id = UUID.randomUUID();                    //创建随机ID对象
        System.out.println(id);                         //输出ID
        System.out.println(id.toString().length());     //ID的长度
        
        Random rand = new Random();                     //随机类Random
        System.out.println(rand.nextBoolean());         //true false 真假随机
        
        System.out.println(rand.nextInt(6));            //0 - 5随机整数
    }
}
39361f51-eb83-41c3-9d20-26e07c2ba9be
36
true
5

💐Math工具类

package moming;


import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Random;

public class Mat {

    public static void main(String[] args) {
        //Π(3.141592...)
        System.out.println(Math.PI);
        //0~1之间随机数
        System.out.println(Math.random());
        //3的2次方
        System.out.println((int) Math.pow(3, 2));
        //四舍五入
        System.out.println(Math.round(1.5));
        //舍去小数位
        System.out.println(Math.floor(1.9));
        System.out.println((int) Math.floor(1.9));
        //小数位补1
        System.out.println(Math.ceil(1.1));
        System.out.println(Math.round( Math.ceil(1.1)));
        //随机色
        //RGB色彩空间或RGB色彩系统可根据Red,Green和Blue颜色的组合来构造所有颜色。
        int red = (int)Math.round(Math.random()*256);
        int green = (int)Math.round(Math.random()*256);
        int blue = (int)Math.round(Math.random()*256);
        String color = String.format("#%02x%02x%02x%n", red, green, blue);
        System.out.println(color);

        //为了直观的感受随机色,这里画了一个圆来呈现
        Random random = new Random();
        //建立内存中的画布
        BufferedImage bi = new BufferedImage(400, 400, BufferedImage.TYPE_INT_RGB);
        //获取二维画笔
        Graphics2D g2 = bi.createGraphics();
        for (int i= 0;i<10;i++) {
            //获取颜色
            red = (int)Math.round(Math.random()*256);
            green = (int)Math.round(Math.random()*256);
            blue = (int)Math.round(Math.random()*256);
            Color c = new Color(red, green, blue,100);
            g2.setColor(c);
            //画圆
            g2.fillOval(random.nextInt(200), random.nextInt(200),100, 100);
        }
        //释放画笔的资源
        g2.dispose();
        //异常处理
        try {
            //保存所画的img
            ImageIO.write(bi, "jpg", new File("01.jpg"));
            //自动运行
            Runtime.getRuntime().exec("cmd /c 01.jpg");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
3.141592653589793
0.8075906174171023
9
2
1.0
1
2.0
2
#b39b01

 随机色的直观效果

🌿输入输出

Scanner 是 Java5 的新特征,在java.util包里,可以完成用户输入,使用如下:

1. 导入java.util包;

2. 构造Scanner对象,参数为标准输入流System.in

3. 获取输入的内容,以下是几个最基础,最常用的。

4. 最后System.out.println输出

String next()

它会自动地消除有效字符之前的空格,只返回输入的字符,不会得到带空格的字符串。

也就是说如果输入了一串字符,到了有空格的时候就会停止录入,只录入空格前面的东西,空格后面的东西(包括分隔的空格都会保留在缓存区域)

除了空格以外,Tab键和Enter键都被视为分隔符(结束符)。

package moming;

import java.util.Scanner;

public class ScDome {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);            //构建一个Scanner对象
        System.out.println("输入字符串:");//提示语句
        String s1 = sc.next();                          //接收键盘录入的字符串
        System.out.println("接收的字符串:"+s1);           //输出
        sc.close();                                      //关闭Scanner对象
    }
}
输入字符串:
   abc   def   ghj
接收的字符串:abc

String nextLine()

它返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。

也就是说输入一串字符,它就可以接受所有字符包括空格,但是遇到回车Enter就会停止录入,只录入前面的东西。

package moming;

import java.util.Scanner;

public class ScDome {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);            //构建一个Scanner对象
        System.out.println("输入一行字符串:");
        String s2 = sc.nextLine();                        //接收一行字符串
        System.out.println("接收的一行字符串:"+s2);
        sc.close();                                      //关闭Scanner对象
    }
}
输入一行字符串:
   abc   def   ghj  123
接收的一行字符串:   abc   def   ghj  123

int nextInt()

double nextDouble()

对于nextInt(),nextDouble()而言,可以看出返回值是int,double型,获取的是单个的数,都是取流中一个数,默认情况下以空格,回车,Tab为分隔符。取的值都是单个字符

package moming;

import java.util.Scanner;

public class IfElse {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);            //构建一个Scanner对象
        System.out.println("输入整数:");
        int i = sc.nextInt();
        System.out.println("获取的整数:"+i);
        sc.close();                                      //关闭Scanner对象
    }
}
输入整数:
  12 13 14
获取的整数:12
package moming;

import java.util.Scanner;

public class IfElse {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);            //构建一个Scanner对象
         System.out.println("输入小数:");
        double v = sc.nextDouble();
        System.out.println("获取的整数:"+v);
        sc.close();                                      //关闭Scanner对象
    }
}
输入小数:
1.5 3.2 4.7
获取的整数:1.5

boolean hasNext()

检测是否有字符串输入,返回值为true和false

package moming;

import java.util.Scanner;

public class IfElse {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);            //构建一个Scanner对象
        System.out.println("输入字符串(如果有输出true否则false):");
        System.out.println(sc.hasNext());
        sc.close();                                      //关闭Scanner对象
    }
}
输入字符串(如果有输出true否则false):
   asd
true

boolean hasNextInt()

检测是否有整数输入,返回值为true和false

package moming;

import java.util.Scanner;

public class IfElse {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);            //构建一个Scanner对象
        System.out.println("输入整数(如果是整数输出true否则false):");
        System.out.println(sc.hasNextInt());
        sc.close();                                      //关闭Scanner对象
    }
}
输入整数(如果是整数输出true否则false):
l
false

boolean hasNextDouble()

检测是否有小数输入,返回值为true和false

package moming;

import java.util.Scanner;

public class IfElse {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);            //构建一个Scanner对象
        System.out.println("输入小数(如果是小数输出true否则false):");
        System.out.println(sc.hasNextDouble());
        sc.close();                                      //关闭Scanner对象
    }
}
输入小数(如果是小数输出true否则false):
1.1
true

🌾分支语句

if分支

if语句有三种格式

格式1if (条件表达式) {
    语句体; 
}

格式2if (条件表达式) {
    语句体1;
} else {
    语句体2;
}

格式3if (条件表达式1) {
    语句体1;
} else if (条件表达式2) {
    语句体2;
} else if (条件表达式3) {
    语句体3;
} 
    . . .
else {
    语句体n+1;
}

格式1:判断条件表达式的结果,如果为true执行语句体,为 false 就不执行语句体。

格式2:首先判断条件表达式的结果,如果为true执行语句体1,为 false 就执行语句体2。

格式3:

① 先判断条件1的值,如果为true则执行语句体1,分支结束;如果为false则判断条件2的值
② 如果值为true就执行语句体2,分支结束;如果为false则判断条件3的值
③ ...
④ 如果没有任何条件为true,就执行else分支的语句体n+1。

if-else语句中,如果大括号控制的只有一行代码,则大括号可以省略不写。

switch分支

switch是匹配条件去执行分支, 适合做值匹配的分支选择,结构清晰,格式良好。

switch支持:byte short int char String 枚举

switch(表达式){
case1:
执行代码...;
break;
case2:
执行代码...;
break;
… 
case 值n-1:
执行代码...;
break;
default:
执行代码n;
}
执行流程:
① 先执行表达式的值,拿着这个值去与case后的值进行匹配。
② 匹配哪个case的值为true就执行哪个case,遇到break就跳出switch分支。
③ 如果case后的值都不匹配则执行default代码。
switch分支注意事项:
① 表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String、
不支持double、float、long。
② case给出的值不允许重复,且只能是字面量,不能是变量。
③ 不要忘记写break,否则会出现穿透现象。
④ 存在多个case分支的功能代码是一样时,可以用穿透性把流程集中到同一处处理,这样可以简化代码。

 if语句和switch语句的区别:

  • if其实在功能上远远强大于switch。
  • if适合做区间匹配。
  • switch适合做:值匹配的分支选择、代码优雅。

🍃循环语句

for 循环

控制一段代码反复执行很多次。
格式:
for (初始化语句; 循环条件; 迭代语句) {
    循环体语句(重复执行的代码);
}

例:
// 输出3次HelloWorld
for (int i = 0; i < 3; i++) {
    System.out.println("Hello World");
}

 while循环

while 循环格式与执行流程。
格式:
初始化语句;
while (循环条件) {
    循环体语句(被重复执行的代码);
    迭代语句; 
}

例:
int i = 0;
while (i < 3) {
    System.out.println("Hello World");
    i++;
}

for语句和while语句的区别: 

  • 功能上是完全一样的,for能解决的while也能解决,反之亦然。
  • 使用规范是:知道循环几次:使用for;不知道循环几次建议使用:while。
  • for循环中,控制循环的变量只在循环中可以使用。While循环中,控制循环的变量在循环后还可以继续使用。

do-while循环 

先执行再判断循环条件。

格式:
初始化语句;
do {
    循环体语句;
    迭代语句;
} while (循环条件);


例:
int i = 0;
do {
    System.out.println(“Hello World!");
    i++;
} while( i < 3);
do-while循环的特点:一定会先执行一次循环体。

跳转控制语句

  • break : 跳出并结束当前所在循环的执行。
  • continue: 跳出当前循环的当次执行,进入下一次循环。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沫洺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值