常用API

  • Post author:
  • Post category:其他




一.常用API概述:

1.数学类

2.包装类

3.时间类

4.字符串

5.StringBuilder和StringBuffer

6.DecimalFormat



二.Math数学类

abs();获取到绝对值

max();最大值

min();最小值

pow();求次幂

round();四舍五入

sqrt();求平方根



一元二次方程如何解:

package API.MathClass;

import java.util.Scanner;

public class TestMath {
    public static void main(String[] args) {
//        System.out.println(Math.abs(-12));//绝对值
//        System.out.println(Math.abs(12));
//
//        System.out.println(Math.max(2,12));//最大值
//        System.out.println(Math.min(97,122));//最小值
//
//        System.out.println(Math.pow(3,3));//幂次方
//        System.out.println(Math.round(4.6));//四舍五入
//
//        System.out.println(Math.sqrt(9));//平方根

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

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

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

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

        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="+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.long包

包装类存在的意义:

1.让基本数据类型有面向对象的特征

2.封装了字符串转化成基本数据类型的方法()、

Integer.parseInt()

Long.parsLong()

Double.parseDouble()

package API.Pake;

public class Test {
    public static void main(String[] args) {
//        int i = 10;
//
//        System.out.println(i+10);
//        System.out.println(i.toString());//int类型没有继承Object
        //基本数据类型是没有面向对象特征的。
        //Java提供基础数据类型的包装类。

        //1.让基本数据类型有面向对象的特征
        /*Integer  i = new Integer(10);//创建包装类的对象
        Integer ii = 10;
        System.out.println(i+20);//在使用上,int和Integer其实没区别
        System.out.println(ii+20);

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

        //2.封装了字符串转化成基本数据类型的方法(重点)
        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 str = "哈哈哈哈";
        char x = str.charAt(1);
        System.out.println(x);
        Long l =Long.parseLong("12233142111113");
        System.out.println(l);

    }
}



三.Java中的时间

Date 日期

new Date()可以获取到系统时间

getTime()能获取到时间的long的表示形式,可以用来计算时间差

package API.Date;

import java.util.Date;

public class Test {
    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());//17
        System.out.println(d.getHours());//小时
        System.out.println(d.getMinutes());
        System.out.println(d.getSeconds());

        //重点
        System.out.println(d.getTime());//获取从1970年1月1日到现在的毫秒时间

    }
}

Calendar 日历

get()获取到时间的某一个部分

set()设置时间—–>计算时间

package API.Date;

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);//加时间
//        System.out.println(cal.get(Calendar.YEAR));//年
//        System.out.println(cal.get(Calendar.MONDAY)+1);//月
//        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 d = new Date();
       Calendar cal = Calendar.getInstance();
        cal.setTime(d);//把Date转化成Calender
        System.out.println(cal);
        System.out.println(cal.get(Calendar.YEAR));//年
      System.out.println(cal.get(Calendar.MONDAY)+1);//月
        System.out.println(cal.get(Calendar.DATE));//日

    }
}



四.格式化时间

Date ,Calendar

SimpleDateFormat:帮我们格式化时间的工具类

java.text

package API.Simple;

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 sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         String s = sdf.format(d);//格式化时间
         System.out.println(s);
    }
}

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

format(Date)帮我们把时间转化成字符串

parse(String)把字符串转化成时间

package API.Simple;

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 ParseException {
        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);
    }
}



五.计算时间差

package API.Date;

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

public class TestDiff {
    public static void main(String[] args) throws ParseException {
        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;  //105分钟
        //显示成xxx小时xxx分钟
        long diffHourDisplay = diffMin/60;
        long diffMinDisplay = diffMin%60;
        System.out.println("您一共玩了"+diffHourDisplay+"小时"+diffMinDisplay+"分钟");

    }
}



六.字符串详解

“字符串”

字符串是一个不可变的数据类型,会返回新字符串而不是在原有基础上修改

package API.Str;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        String s = "我是你爸爸";
        System.out.println(s.charAt(0));

        //在字符串s上进行拼接,拼接“哈哈哈”
        s.concat("哈哈哈");
        System.out.println(s);

        //字符串是不可变的数据类型。
        //几乎所有的字符串操作都会返回一个新字符串
        String s1 = s.concat("哈哈哈");
        System.out.println(s1);

        //判断字符串所含内容
        String s2 = "小吴吃不胖";
        System.out.println(s2.contains("小吴"));

        //判断以xxx结尾
        System.out.println("小潘昨天生气了".endsWith("了"));

        //判断以xxx开头
        System.out.println("小潘今天没生气".startsWith("小潘"));

        //验证码
        String verify_code = "Kmqn";
        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 s = "我的天哪123";
        System.out.println(s.length());

        //字符串替换
        String s = "小潘特别喜欢小吴";
        String s1 = s.replace("小潘","小王");
        System.out.println(s1);

        //切割字符串
        String s = "哈哈_呵呵_吼吼_哦no";
        String[] ss= s.split("_");
        System.out.println(ss[0]);
        System.out.println(ss[1]);
        System.out.println(ss[2]);
        System.out.println(ss[3]);

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

        //去掉左右两端的空格
        String s = "      哈      哈      ";
        System.out.println(s.trim());

        int i = 10;
        System.out.println(String.valueOf(i));
        //野路子
        System.out.println(i+"");
    }
}



小练习

1.判断某个人是不是姓张

package API.Str;

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();
    //    System.out.println(name.startsWith("张")?"是的":"不是");//三元运算符
        String name = sc.nextLine();
        if(name.startsWith("张")){
            System.out.println("是的");
        }else{
            System.out.println("不是");
        }
    }
}

2.打印字符串中每一个字符

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

    }
}

3.有如下学生信息,请计算并打印出每个学生的平均分

package API.Str;

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++){//数组length是没有括号的
            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;
            System.out.println(name+"的平均分是"+avg);
        }
    }
}



StringBuffer和StringBuilder

String是一个不可变的数据类型

“哈哈”+“呵呵”+“吼吼”

StringBuffer和StringBuilder可变字符串(用法一模一样,线程处不一样)

package API.Str;

public class TestStringBulider {
    public static void main(String[] args) {
        StringBuilder sb= new StringBuilder();//一个空字符串""
        StringBuilder sb1= new StringBuilder("王二麻子的麻子特别麻");
        System.out.println(sb1);
        sb1.append(",李二麻子的麻子也很麻");
        System.out.println(sb1);
        sb1.insert(3,"哈哈哈");
        System.out.println(sb1);
        sb1.append(123);
        System.out.println(sb1);
        //把StringBuilder转化成String
        String s = sb1.toString();
        System.out.println(s);


    }
}



DecimalFormat

Java格式化数字

package API.Decimal;

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);

    }
}



作业:

1.让用户输入一个数学表达式,3+6+9+18,用编程完成计算

package API.HomeWork;
import java.util.Scanner;
public class Day01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数字表达式");
        String s = sc.nextLine();
        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);
    }
}

2.计算手速。

package API.HomeWork;

import com.sun.org.apache.bcel.internal.generic.CALOAD;

import javax.jws.soap.SOAPBinding;
import java.text.DecimalFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class Day02 {
    public static void main(String[] args) {
        System.out.println("游戏准备就绪请按Entel开始");
        Scanner sc = new Scanner(System.in);
        String  s = 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("您在20秒内一共按了"+count+"次");
        double pin = count/5.0;
        //把频率进行格式化
        DecimalFormat df = new DecimalFormat(".00");
        System.out.println("您的手速"+df.format(pin)+"次/秒");

    }
}



版权声明:本文为weixin_52493276原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。