常用API

常用API

Math数学类

import java.util.Scanner;

public class TestMath {
    public static void main(String[] args) {
        System.out.println(Math.abs(-12)); // 绝对值 12
        System.out.println(Math.abs(12));

        System.out.println(Math.max(1,10)); // 最大值 10
        System.out.println(Math.min(1,10)); // 最小值 1

        System.out.println(Math.pow(3,3)); // 次方 3*3*3 27

        System.out.println(Math.round(4.7)); // 四舍五入 5
        System.out.println(Math.round(3.2)); // 3

        System.out.println(Math.sqrt(9)); // 平方根 3

        System.out.println("计算一元二次方程的解:");
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入a:");
        double a = sc.nextDouble();
        System.out.println("请输入b:");
        double b = sc.nextDouble();
        System.out.println("请输入c:");
        double c = sc.nextDouble();

        double dt = Math.pow(b, 2) - 4*a*c;

        if (dt < 0){
            System.out.println("无解");
        } else if (dt == 0){
            System.out.println("次方程只有一个解");
            double x = (-b) / (2*a);
            System.out.println("解:"+x);
        } else {
            System.out.println("次方程有两个解");
            double x1 = (-b+Math.sqrt(dt))/(2*a);
            double x2 = (-b-Math.sqrt(dt))/(2*a);
            System.out.println("解:x1="+x1);
            System.out.println("解:x2="+x2);
        }
    }
}

运行结果:

基本数据类型包装类

byte -> Byte

short -> Short

int -> Integer

long -> Long

float -> Float

double -> Double

char -> Character

boolean -> Boolean

这些类都在 Java.lang包

包装类存在意义:

  1. 让基本数据类型有面向对象的特征
  2. 封装了字符串装换成基本数据类型的方法
public class TestClass {
    public static void main(String[] args) {
//        int i = 10;
//        System.out.println(i+10);
//        System.out.println(i.toString());// int类型没有继承Object
        // 基本数据类型是没有面向对象的特征的
        // Java提供基本数据类型的包装类
        Integer i = new Integer(10); // 创建包装类的对象 不推荐
        Integer i1 = 10; // 自动打包
        System.out.println(i+20); // 在使用上,int和Integer其实没有区别
        System.out.println(i1+20);

        int j = i1; // 自动解包
        System.out.println(j+100);

        String a = "1";
        String b = "1";
        System.out.println(a+b); // 11

        int c = Integer.parseInt(a); // 字符串转化成int唯一的方案
        int d = Integer.parseInt(b);
        System.out.println(c+d);

        String e = "1.25";
        double f = Double.parseDouble(e); // 把字符串转化成一个double
        System.out.println(f*6);

        String h = "1233211234567"; // 表示更大的数 Number BigDecimal
        long k = Long.parseLong(h); // 把字符串转化成一个long
        System.out.println(k*10);

        String str = "啊哈哈哈哈哈"; // 字符串无法打包转化成字符
        char g = str.charAt(0); // 获取字符第0号元素
        System.out.println(g);
    }
}

运行结果:

Java中的时间

Date日期

import java.util.Date;

public class TestDate {
    public static void main(String[] args) {
        Date d = new Date(); // 系统时间
        System.out.println(d);
        System.out.println(d.getYear()+1900); // 年份从1900年开始算的
        System.out.println(d.getMonth()+1); // 月份从0开始
        System.out.println(d.getDate()); // 日
        System.out.println(d.getHours()); // 小时
        System.out.println(d.getMinutes()); // 分钟
        System.out.println(d.getSeconds()); // 秒

        System.out.println(d.getTime()); // 获取到时间的毫秒表示形式 返回的是long
    }
}

Calendar日历

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

public class TestCalendar {
    public static void main(String[] args) {
//        Calendar cal = Calendar.getInstance();
//        System.out.println(cal);
//
//        cal.set(Calendar.DATE,cal.get(Calendar.DATE)+30); // 计算时间
//        // cal.set(Calendar.MONTH,cal.get(Calendar.MONTH)-1); // 计算月份
//
//        System.out.println(cal.get(Calendar.YEAR)); // 年
//        System.out.println(cal.get(Calendar.MONTH)+1); // 月从0开始算
//        System.out.println(cal.get(Calendar.DATE)); // 日
//        System.out.println(cal.get(Calendar.HOUR_OF_DAY)); // 小时
//        System.out.println(cal.get(Calendar.MINUTE)); // 分钟
//        System.out.println(cal.get(Calendar.SECOND)); // 秒

//        System.out.println(cal.getTime()); // 拿到的是Date对象
        Date d = new Date();
        Calendar cal = Calendar.getInstance();
        cal.setTime(d); // 把Date转化成Calendar
        System.out.println(cal);
        System.out.println(cal.get(Calendar.YEAR));
        System.out.println(cal.get(Calendar.MONTH)+1);
        System.out.println(cal.get(Calendar.DATE));
    }
}

格式化时间

格式:yyyy-MM-dd HH:mm:ss

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

public class Test1 {
    public static void main(String[] args) {
        Date d = new Date();
        System.out.println(d);

        // SimpleDateFormat 格式化时间的工具类
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String s = sdf.format(d); // 格式化时间 string类型
        System.out.println(s);
    }
}

字符串转化成时间

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

public class Test2 {
    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个事件(yyyy-MM-dd HH:mm:ss):");
        String s = sc.nextLine();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 有可能会输入其他 就抛出一个异常
        Date d = sdf.parse(s); // 把字符串转化成时间
        System.out.println(d);
    }
}

运行结果:

计算时间差

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

public class TestDiff {
    public static void main(String[] args) throws Exception {
        String s1 = "2018-01-01 12:00:00"; // 开始时间
        String s2 = "2018-01-01 14:45:00"; // 结束时间
        // 格式化时间的工具
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 把字符串转化成时间
        Date d1 = sdf.parse(s1);
        Date d2 = sdf.parse(s2);
        // 转化成long类型的时间
        long long1 = d1.getTime();
        long long2 = d2.getTime();

        long diff = Math.abs(long1 - long2); // 计算毫秒界别的时间差,求绝对值
        // 秒级别的时间差
        long diffSec = diff/1000;
        // 分钟级别的时间差
        long diffMin = diffSec/60;
        // 显示成xx小时xx分钟
        long diffHourDisplay = diffMin / 60; // 小时
        long diffMinDisplay = diffMin % 60; // 分钟
        System.out.println("您一共玩了"+diffHourDisplay+"小时"+diffMinDisplay+"分钟");
    }
}

运行结果:

字符串详解

import java.util.Scanner;

public class Test {
    public static void main(String[] args){
//        String s = "你好啊,我叫赛利亚";
//        System.out.println(s.charAt(0)); // 获取到第0个位置的字符
//        s.concat("哈哈哈"); // 在字符串s上进行拼接,拼接“哈哈哈”
//        System.out.println(s);
//        // 字符串是不可变的数据类型
//        // 几乎所有的字符串操作都会返回一个新字符串
//        String s1 = s.concat("哈哈哈"); // 在字符串s上进行拼接,拼接“哈哈哈”
//        System.out.println(s1);
//        String s = "苍老师特别喜欢劲夫";
//        System.out.println(s.contains("波多老师")); // 判断是否包含这个xxx内容
//
//        System.out.println("赛利亚昨天回娘家".endsWith("娘家")); // 判断是否以xxx结尾
//        System.out.println("赛利亚昨天回娘家".startsWith("赛利亚")); // 判断是否以xxx开头
        // 验证码
//        String verify_code = "Kmgn";
//        Scanner sc = new Scanner(System.in);
//        System.out.println("请输入验证码("+verify_code+")");
//        String userInput = sc.nextLine();
//        if (verify_code.equalsIgnoreCase(userInput)){ // 判断左右两端内容在忽略大小写的时候是否一致
//            System.out.println("OK");
//        }else {
//            System.out.println("不OK");
//        }

//        String s = "你好啊";
//        System.out.println(s.indexOf("啊")); // 计算给出的字符串出现的位置
//        String s1 = "我的天哪123";
//        System.out.println(s1.length()); // 获取字符串长度

//        String s = "周杰伦特别喜欢劲夫";
//        String s1 = s.replace("周杰伦","苍老师"); // 字符串替换
//        System.out.println(s1);

//        String s = "哈哈_呵呵_吼吼_oh";
//        String[] ss = s.split("_"); // 以_切割字符串,_将消失 要放到数组里
//        System.out.println(ss[0]);
//        System.out.println(ss[1]);
//        System.out.println(ss[2]);

        String s = "今天天气针不错";
        System.out.println(s.substring(2,4)); // 前闭后开区间,2能取到,4取不到

        int i = 10;
        System.out.println(String.valueOf(i)); // 基本数据类型变成字符串
        // 野路子
        System.out.println(i+"");
    }
}

练习

import java.util.Scanner;
// 判断是否姓张
public class Test1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的名字");
        String name = sc.nextLine();
        // 第一种写法
//        if (name.startsWith("张")){
//            System.out.println("是的");
//        }else {
//            System.out.println("不是");
//        }
        // 第二种写法
        System.out.println(name.startsWith("张")?"是的":"不是");
    }
}

运行结果:

public class Test2 {
    // 打印字符串中每一个字符
    public static void main(String[] args) {
        String s = "今夜阳光明媚,今夜多云转晴";
        for (int i = 0; i < s.length(); i++) {
            System.out.print(s.charAt(i));
        }
    }
}

运行结果:

public class Test3 {
    // 打印出每个学生的平均分
    public static void main(String[] args) {
        String[] stus = {"小绿_数学_12_语文_33_英语_42","小红_数学_25_语文_56_英语_27","小黄_数学_99_语文_88_英语_120"};
        for (int i = 0; i < stus.length; i++) {
            String s = stus[i];
            String[] ss = s.split("_"); // 切割后 小绿,数学,12,语文,33,英语,42
            String name = ss[0];
            String shuxue = ss[2];
            String yuwen = ss[4];
            String yingyu = ss[6];
            double avg = (Integer.parseInt(shuxue) + Integer.parseInt(yuwen) + Integer.parseInt(yingyu))/3.0;
            DecimalFormat df = new DecimalFormat(".00");
            System.out.println(name+"的平均分是"+df.format(avg));
        }
    }
}

运行结果:

StringBuffer和StringBuilder 可变的字符串

String 是一个不可变的数据类型
StringBuffer 和 StringBuilder 可变的字符串

public class TestStringBuilder {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder(); // 一个空字符串 ""
        StringBuilder sb2 = new StringBuilder("今天的风儿甚是喧嚣");
        System.out.println(sb2);
        sb2.append(",今天的风儿甚是喧嚣"); // 在后面增加字符
        System.out.println(sb2);

        sb2.insert(3,"哈哈哈"); // 在第3位插入字符
        System.out.println(sb2);

        sb2.append(123);
        System.out.println(sb2);
        // 把StringBuilder转化成String
        String s = sb2.toString();
        System.out.println(s);
        System.out.println("==============================");
        // StringBuffer 与 StringBuilder 基本上一样只是线程上不同
        StringBuilder st = new StringBuilder();
        StringBuilder st2 = new StringBuilder("今天的风儿甚是喧嚣");
        System.out.println(st2);
        st2.append(",今天的风儿甚是喧嚣"); // 在后面增加字符
        System.out.println(st2);

        st2.insert(3,"哈哈哈"); // 在第3位插入字符
        System.out.println(st2);

        st2.append(123);
        System.out.println(st2);
        // 把StringBuilder转化成String
        String s1 = st2.toString();
        System.out.println(s1);
    }
}

运行结果:

DecimalFormat 小数格式化

import java.text.DecimalFormat;

public class Test {
    public static void main(String[] args) {
        double d = 10/3.0;
        System.out.println(d);
        // . 小数点
        // 0和# 表示数字
        // 保留两位小数
        DecimalFormat df = new DecimalFormat(".00");
        String s = df.format(d);
        System.out.println(s);
    }
}

运行结果:

练习

import java.util.Scanner;
// 输入一个加法数学表达式
public class HomeWork {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数学表达式");
        String s = sc.nextLine(); // 6+2+1
        // 获取到用户输入的每一个数字
        // 先去掉空格
        s = s.replace(" ","");
        String[] ss = s.split("\\+"); // 用+号去切割要带上\\

        int sum = 0;
        for(int i = 0 ; i < ss.length; i++) {
            int a = Integer.parseInt(ss[i]);
            sum += a;
        }
        System.out.println("最终的结果是:"+sum);
    }
}

运行结果:

import java.text.DecimalFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class HomeWork1 {
    // 计算手速
    public static void main(String[] args) {
        System.out.println("游戏马上开始,请准备,按Enter开始");
        Scanner sc = new Scanner(System.in);
        sc.nextLine(); // 让程序停在这里
        // 游戏开始
        // 准备一个游戏结束的时间
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.SECOND,cal.get(Calendar.SECOND)+5);
        Date end = cal.getTime(); // 结束时间
        long endLong = end.getTime(); // 结束时间的时间戳(Long)

        int count = 0;
        while (endLong - new Date().getTime() >= 0){
            sc.nextLine(); // 停一下,等待用户输入Enter
            System.out.println("你按了");
            count++;
        }
        // 计算一共按了多少次
        System.out.println("您在5秒之内一共按了"+count+"次");
        double pin = count/5.0; // 不加.0为int类型
        // 把频率进行格式化
        DecimalFormat df = new DecimalFormat(".00");
        System.out.println("您的手速是:"+df.format(pin)+"次/秒");
    }
}

运行结果:

推荐视频

posted @ 2021-05-14 06:39  闲着的大叔  阅读(37)  评论(0编辑  收藏  举报