JAVA中的包装类
包装类里没有String,它是引用数据类型
基本类型是不能调用方法的,而其包装类具有很多方法
包装类主要提供了两大类方法:
1. 将本类型和其他基本类型进行转换的方法
2. 将字符串和本类型及包装类互相转换的方法
基本类型 |
对应的包装类 |
byte |
Byte |
short |
Short |
int |
Integer |
long |
Long |
float |
Float |
double |
Double |
char |
Character |
boolean |
Boolean |
Integer m=new Integer(5);//定义Integer包装类对象,值为5 Integer n=new Integer("8");//定义Integer包装类对象,值为8 public static void main(String[] args){ int score1=86; //创建Integer包装类对象,表示变量score1 Integer score2=new Integer(score1); //将Integer包装类转换为double类型 double score3=score2.doubleValue(); //将Integer包装类转换为float类型 float score4=score2.floatValue(); //将Integer包装类转换为int类型 int score5=score2.intValue(); System.out.println("Integer包装类"+score2); System.out.println("double类型"+score3); System.out.println("float类型"+score4); System.out.println("int类型"+score5); }
基本类型和包装类之间的转换
装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱
char sex='男';//定义一个基本类型 Character sex1=new Character(sex);//手动装箱 Character sex2=sex;//自动装箱,省略了new
拆箱:和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱
Integer j=new Integer(8);//定义一个Integer包装类对象 int m=j.intValue();//手动拆箱 int n=j;//自动拆箱为int类型 double a=91.4; Double b=new Double(a); Double c=a; System.out.println(b+"和"+c); // Double d=new Double(87.0); double e=d.doubleValue(); double f=d; System.out.println(e+"和"+f);
基本类型和字符串之间的转换
基本类型转换为字符串有三种方法:
1. 使用包装类的 toString() 方法
2. 使用String类的 valueOf() 方法
3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串
//将基本类型转换为字符串 double a=91.4; String str1=Double.toString(a); String str2=String.valueOf(a); String str3=a+"";
字符串转换成基本类型有两种方法:
1. 调用包装类的 parseXxx 静态方法
2. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱
//将字符串转换为基本类型 String str="9"; int d=Integer.parseInt(str); int e=Integer.valueOf(str); String str2 = "180.20"; // 将字符串转换为基本类型 Double a =Double.parseDouble(str2); //其他基本类型与字符串的相互转化这里不再一一列出,方法都类似
使用Date和SimpleDateFormat类表示时间
使用 Date 类的默认无参构造方法创建出的对象就代表当前时间,我们可以直接输出 Date 对象显示当前的时间
Date nowTime=new Date();//使用默认的构造方法创建Date对象 System.out.println(nowTime);//输出Date对象 >>> Sat Mar 10 13:46:10 CST 2018
可以使用 SimpleDateFormat 来对日期时间进行格式化,如可以将日期转换为指定格式的文本,也可将文本转换为日期。
1. 使用 format() 方法将日期转换为指定格式的文本
import java.text.SimpleDateFormat; import java.util.Date; public static void main(String[] args){ //创建Date对象,表示当前时间 Date nowTime=new Date(); //创建SimpleDateFormat对象,指定目标格式 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //调用format()方法,格式化时间,转换为指定格式字符串 String today=sdf.format(nowTime); System.out.println(today); }
- 使用 parse() 方法将文本转换为日期
//创建日期格式的字符串 String day="2014年02月14日 10月30:13"; //创建SimpleDateFormat对象,指定字符串的日期格式(要与字符串的格式对应) SimpleDateFormat df=new SimpleDateFormat("yyyy年MM月dd日 HH月mm:ss"); //调用parse()方法,将字符串转换为日期 Date date=df.parse(day); System.out.println(date);
一定要注意:
1、 调用SimpleDateFormat对象的parse()方法时可能会出现转换异常,即ParseException ,因此需要进行异常处理
2、 使用 Date 类时需要导入 java.util 包,使用 SimpleDateFormat 时需要导入 java.text 包
Calendar类的应用
更推荐使用 Calendar 类进行时间和日期的处理。
java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间,如 Calendar c = Calendar.getInstance();
Calendar c=Calendar.getInstance();//创建Calendar对象
public static void main(String[] args){ Calendar c=Calendar.getInstance();//创建Calendar对象 int year=c.get(Calendar.YEAR); int month=c.get(Calendar.MONTH)+1;//获取月份,0代表1月份 int day=c.get(Calendar.DAY_OF_MONTH); int hour=c.get(Calendar.HOUR_OF_DAY); int minute=c.get(Calendar.MINUTE); int second=c.get(Calendar.SECOND); System.out.println("当前时间:"+year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second);}
Calendar 类提供了 getTime() 方法,用来获取 Date 对象,完成 Calendar 和 Date 的转换,还可通过 getTimeInMillis() 方法,获取此 Calendar 的时间值,以毫秒为单位。
public static void main(String[] args){ Calendar c=Calendar.getInstance();//创建Calendar对象 Date date=c.getTime();//将Calendar对象转换为Date对象 long time=c.getTimeInMillis();//获取当前时间,以毫秒为单位 System.out.println(date+" / "+time); }
Date/SimpleDateFormat/Calendar 综合应用
public static void main(String[] args){ Calendar c=Calendar.getInstance(); Date date=c.getTime(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String now=sdf.format(date); System.out.println("当前时间:"+now); }
使用Math类操作数据
Math 类位于 java.lang 包中,包含用于执行基本数学运算的方法,Math类的所有方法都是静态方法。所以使用该类中的方法时,可以直接使用类名.方法名,如: Math.round();
常用的方法:
返回值 |
方法名 |
解释 |
long |
round() |
返回四舍五入后的整数 |
double |
floor() |
返回小于参数的最大整数 |
double |
ceil() |
返回大于参数的最小整数 |
double |
random() |
返回0~1之间的随机浮点数 |
public static void main(String[] args){ double a=12.81; int b=(int)a; System.out.println("a强制类型转换后的值:"+b); long c=Math.round(a); System.out.println("四舍五入:"+c); double d=Math.floor(a); System.out.println("小于参数的最大整数:"+d); double e=Math.ceil(a); System.out.println("大于参数的最小整数:"+e); double f=Math.random(); //生成随机整数,先调用random()方法生成0~1的随机浮点数 //再乘以要生成的最大整数,最后强制类型转换称int类型 int g=(int)(Math.random()*99); System.out.println(f+" / "+g); } public static void main(String[] args){ int[] nums=new int[10]; for(int i=0;i<nums.length;i++){ nums[i]=(int)(Math.random()*10); } for(int x:nums){ System.out.print(x+" "); } }
*** END