工具

integer 十进制可以转换其他机制:二进制,8进制,16进制
public static String toBinaryString(int i):二进制
public static String toOctalString(int i):八进制
public static String toHexString(int i):十六进制
十进制转换成其他进制
  • public static String toString(int i, int radix)

  • 描述的是:将其他进制转换10进制String s :s必须是数字字符串

  • public static Integer valueOf(String s, int radix)

public class IntegerDemo {
    public static void main(String[] args) {
        //100的二进制
        System.out.println(Integer.toBinaryString(100));
        System.out.println(Integer.toOctalString(100));
        System.out.println(Integer.toHexString(100));
        System.out.println("--------------------------------");

        //public static String toString(int i, int radix)
        System.out.println(Integer.toString(100, 6));
        System.out.println(Integer.toString(100, 7));
        System.out.println(Integer.toString(100, 9));
        System.out.println(Integer.toString(100, 14));
        System.out.println("--------------------------------");

        //Integer里面的两个构造方法
        /*
         * Integer(int value)
         * Integer(String str):如果字符串不是数字字符串,会出现异常:NumberFormatException:数字格式化异常
         * 
         * */
        //把其他进制转换成十进制
        // public static Integer valueOf(String s, int radix)
        System.out.println(Integer.valueOf("100", 6));
        System.out.println(Integer.valueOf("100", 7));
        System.out.println(Integer.valueOf("100", 9));
        System.out.println(Integer.valueOf("100", 14));


//      System.out.println(Integer.valueOf("abc",15)); //错误

    }
}

JDK5.0以后:对于包装类型有一个自动装箱和自动拆箱
* Integer类型也会有这样的特性(常用)
* Character

public class IntegerDemo2 {
    public static void main(String[] args) {
        //定义一个Integer类型
//      Integer i = new Integer(100) ;
        Integer i = 100 ;//自动装箱:int类型--->封装了Integer类型
        i+= 200 ;//i = i + 200 ;先是拆箱,将Integer转换int类型,做一个求和,完了又封装成Integer类型
        System.out.println("i:"+i);

BigInteger:
可以让超出Integer类型的范围的数据进行计算
public class BigIntegerDemo {
    public static void main(String[] args) {
        //创建Integer对象
//      Integer i = new Integer(100) ;
//      System.out.println(i);
        //获取Integer类型的最大值
        System.out.println(Integer.MAX_VALUE);//2147483647

        //Integer类型的构造方式:Integer(String str)
        //java.lang.NumberFormatException:数字格式异常
//      Integer i = new Integer("2147483648") ;
//      System.out.println(i);

//      java提供了:BigInteger
        BigInteger bi = new BigInteger("2147483648") ;
        System.out.println("bi:"+bi);
    }
}
BigInteger的构造方法:

public BigInteger(String val:数字字符串) :
*
* 常用的几种方法:
* public BigInteger add(BigInteger val)
* public BigInteger subtract(BigInteger val)
* public BigInteger multiply(BigInteger val)
* public BigInteger divide(BigInteger val)
*

public class BigIntegerDemo2 {
    public static void main(String[] args) {
        //创建两个BigInteger对象
        BigInteger bi1 = new BigInteger("100") ;
        BigInteger bi2 = new BigInteger("50") ;

//      public BigInteger add(BigInteger val)
        System.out.println("add:"+bi1.add(bi2));

        //public BigInteger subtract(BigInteger val)
        System.out.println("subtract:"+bi1.subtract(bi2));

        //public BigInteger multiply(BigInteger val)
        System.out.println("subtract:"+bi1.multiply(bi2));

        //public BigInteger divide(BigInteger val)
        System.out.println("divide:"+bi1.divide(bi2));

        //public BigInteger[] divideAndRemainder(BigInteger val):返回的是商和余数
        BigInteger[] bis = bi1.divideAndRemainder(bi2);
        System.out.println("商为:"+bis[0]);
        System.out.println("余数:"+bis[1]);


    }
}

character中的常用方法:
public static boolean isDigit(char ch)确定指定字符是否为数字。
public static boolean isLowerCase(char ch)确定指定字符是否为小写字母。
public static boolean isUpperCase(char ch)确定指定字符是否为大写字母
public static char toLowerCase(char ch):把字符转换成小写
public static char toUpperCase(char ch):把字符转换成大写
public class CharacterDemo2 {
    public static void main(String[] args) {
//      public static boolean isUpperCase(char ch)确定指定字符是否为大写字母
        System.out.println("isUpperCase:"+Character.isUpperCase('a'));
        System.out.println("isUpperCase:"+Character.isUpperCase('A'));

        System.out.println("--------------------------");

//      public static boolean isLowerCase(char ch)确定指定字符是否为小写字母。
        System.out.println("isLowerCase:"+Character.isLowerCase('a'));
        System.out.println("isLowerCase:"+Character.isLowerCase('A'));
        System.out.println("isLowerCase:"+Character.isLowerCase('0'));
        System.out.println("--------------------------");

        //public static boolean isDigit(char ch)确定指定字符是否为数字。    
        System.out.println("isDigit:"+Character.isDigit('A'));
        System.out.println("isDigit:"+Character.isDigit('0'));
        System.out.println("isDigit:"+Character.isDigit('a'));
        System.out.println("--------------------------");
//      public static char toLowerCase(char ch):把字符转换成小写
        System.out.println("toLowerCase:"+Character.toLowerCase('A'));
        System.out.println("toLowerCase:"+Character.toLowerCase('a'));

        System.out.println("--------------------------");
//      public static char toUpperCase(char ch):把字符转换成大写
        System.out.println("toUpperCase:"+Character.toUpperCase('a'));
        System.out.println("toUpperCase:"+Character.toUpperCase('A'));
    }
}

需求:键盘录入一个字符串,统计该字符串中出现的大写字母,小写字母,数字字符有多少个(其他字符不考虑)

import java.util.Scanner;

/**
 * 需求:键盘录入一个字符串,统计该字符串中出现的大写字母,小写字母,数字字符有多少个(其他字符不考虑)
 *      1)定义统计变量
 *      2)创建键盘录入对象,录入一个字符串
 *      3)吧字符串转换字符数组
 *      4)遍历字符数组
 *          char ch = chs[x] ;
 * 
 *      5)在for循环中判断:
 *          isLowerCase(char  ch):判断小写字母
 *          isUpperCase(char ch):大写字母
 *          isDigit(char ch):数字字符
 *          满足条件就做++
 *      6)输出结果
 * */
public class CharacterTest {
    public static void main(String[] args) {
        //定义三个统计变量
        int bigCount = 0 ;
        int smallCount = 0 ;
        int numberCount = 0;

        //创建键盘录入对象
        Scanner sc = new Scanner(System.in) ;

        //录入并接收数据
        System.out.println("请输入一个字符串:");
        String line = sc.nextLine() ;

        //将字符串转换成字符数组
        char[] chs = line.toCharArray() ;
        //遍历字符数组
        for (int x = 0; x < chs.length; x++) {
            char  ch = chs[x] ;

            //做判断:使用Character中的判断功能就可以完成
            if(Character.isLowerCase(ch)){
                smallCount++ ;
            }else if(Character.isUpperCase(ch)){
                bigCount++ ;
            }else if(Character.isDigit(ch)){
                numberCount++;
            }
        }

        //输出结果:
        System.out.println("该字符串中大写字符有:"+bigCount+"个");
        System.out.println("该字符串中小写字符有:"+smallCount+"个");
        System.out.println("该字符串中数字字符有:"+numberCount+"个");
    }
}
Arrays工具
Arrays:sun公司提供的官方文档中的一个类:包含了数组排序以及数组搜索等等的一些方法!对数组操作的工具类
java.util包下
public static String toString(int[] a):将int类型的数组转换成字符串类型
public static void sort(int[] a)对指定的 int 型数组按数字升序进行排序。(该底层已经封装好了,
属于快速排序算法封装的一个sort方法)
public static int binarySearch(int[] a,int key):二分查找
public class ArraysTest {
    public static void main(String[] args) {
        //定义一个数组,静态初始化
        int[] arr = {24,69,80,57,13} ;

        //public static String toString(int[] a):将int类型的数组转换成字符串类型
        System.out.println("toString():"+Arrays.toString(arr));//[24, 69, 80, 57, 13]

        //public static void sort(int[] a)
        Arrays.sort(arr);
        System.out.println("toString():"+Arrays.toString(arr));//[13, 24, 57, 69, 80]

        //[13, 24, 57, 69, 80]:有序了
        //public static int binarySearch(int[] a,int key):二分查找
        System.out.println("binarySearch:"+Arrays.binarySearch(arr, 57));//2
        System.out.println("binarySearch:"+Arrays.binarySearch(arr, 577));//-6
    }
}

BigDecimal类
因为运算的时候,float类型和double类型(浮点类型),会丢失数据,不精确,大部分时候数据存储和整数类型存储不一致,属于有效位数字
不精确:java提供了一个类:BigDecimal

BigDecimal构造方法
public BigDecimal(String val)
public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor)

public BigDecimal divide(BigDecimal divisor, int scale,int roundingMode)

参数一:商
参数二:有几位小数
参数三:以什么样的模式舍入

public class BigDecimalDemo2 {
    public static void main(String[] args) {
        /*
         * System.out.println(0.09+0.01);
            System.out.println(1.0-0.32);
            System.out.println(1.015*100);
            System.out.println(1.301/100);
         * */
        BigDecimal bg1 = new BigDecimal("0.09") ;
        BigDecimal bg2 = new BigDecimal("0.01") ;
        System.out.println("add:"+bg1.add(bg2));

        System.out.println("----------------------");
        BigDecimal bg3 = new BigDecimal("1.0") ;
        BigDecimal bg4 = new BigDecimal("0.32") ;
        System.out.println("subtract:"+bg3.subtract(bg4));
        System.out.println("----------------------");

        BigDecimal bg5 = new BigDecimal("1.015") ;
        BigDecimal bg6 = new BigDecimal("100") ;
        System.out.println("multiply:"+bg5.multiply(bg6));
        System.out.println("----------------------");
        BigDecimal bg7 = new BigDecimal("1.301") ;
        BigDecimal bg8 = new BigDecimal("100");
        System.out.println("divide:"+bg7.divide(bg8));
        System.out.println("divide:"+bg7.divide(bg8, 3, BigDecimal.ROUND_HALF_UP));
        System.out.println("divide:"+bg7.divide(bg8, 8, BigDecimal.ROUND_HALF_UP));
    }
}

Calendar日历类:
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法
,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
日历类中有一个方法:获取字段的方法
public int get(int field)返回给定日历字段的值
* YEAR:年
* MONTH:月份
* DATE:月份中的天
public class CalienderDemo {
    public static void main(String[] args) {
//      Calendar c = new Calendar();//不能直接实例化
        //此时日历类的字段和时间已经初始化了!
        Calendar now = Calendar.getInstance() ;//子类对象的方法

        //获取年
        int year = now.get(Calendar.YEAR) ;

        //获取月份
        int month = now.get(Calendar.MONTH) ;//从0开始

        //获取月份中的天
        int date = now.get(Calendar.DATE) ;

        System.out.println(year+"年"+(month+1)+"月"+date+"日");

    }
}
Calendar中常用的两个方法:
public abstract void add(int field, int amount)根据日历的规则,
为给定的日历字段添加或减去指定的时间量
public final void set(int year, int month,int date):设置新的日历时间
public class CalendarDemo2 {
    public static void main(String[] args) {
        //创建Calendar对象
        Calendar c = Calendar.getInstance() ;
//      
//      int year = c.get(Calendar.YEAR) ;
//      int month = c.get(Calendar.MONTH) ;
//      int date = c.get(Calendar.DATE) ;
//      System.out.println(year+"年"+(month+1)+"月"+date+"日");
//      System.out.println("------------------------------");

        //需求:3年前的今天
//      c.add(Calendar.YEAR, -3);
//      int year = c.get(Calendar.YEAR);
//      int month = c.get(Calendar.MONTH) ;
//      int date = c.get(Calendar.DATE) ;
//      System.out.println(year+"年"+(month+1)+"月"+date+"日");

        //需求:5年后的10天前
//      c.add(Calendar.YEAR, 5);
//      c.add(Calendar.DATE, -10);
//      int year = c.get(Calendar.YEAR);
//      int month = c.get(Calendar.MONTH) ;
//      int date = c.get(Calendar.DATE) ;
//      System.out.println(year+"年"+(month+1)+"月"+date+"日");


//      public final void set(int year, int month,int date):设置新的日历时间
        c.set(2011, 2, 2);
        int year = c.get(Calendar.YEAR) ;
        int month = c.get(Calendar.MONTH) ;
        int date = c.get(Calendar.DATE) ;
        System.out.println(year+"年"+(month+1)+"月"+date+"日");
    }
}

要求:
* 键盘录入一个年份,获取任意一年的二月有多少天

import java.util.Calendar;
import java.util.Scanner;

public class CalendarTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个年份");
        int year = sc.nextInt();

        //创建日历对象
        Calendar c = Calendar.getInstance();

        //设置日历时间 set()
        c.set(year, 2, 1); //这里其实是3月1号

        //往前推一天的日就是二月份有多少天
        c.add(Calendar.DATE,-1);

        //输出
        System.out.println("二月份有:"+c.get(Calendar.DATE));

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值