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