一、枚举
1.枚举的含义
枚举是由一组固定的常量组成的类型,枚举的类型关键字是enum
2.枚举的使用
定义枚举类
packageenumtdome;
//用enum关键字创建public enumGender {
//枚举类中直接放值 不需要数据类型
one,two,three,four,five,six,seven
}
枚举的运用
packageenumtdome;importjava.util.Scanner;public classtest {
//实例化枚举类
Gender ger;public static voidmain(String[] args) {
test test=newtest();
//将枚举类型填进去
test.name(Gender.one);
}public voidname(Gender day) {switch(day) {caseone:
System.out.println(1);break;casetwo:
System.out.println(2);break;casethree:
System.out.println(3);break;casefour:
System.out.println(4);break;casefive:
System.out.println(5);break;casesix:
System.out.println(6);break;caseseven:
System.out.println(7);break;
}
}
}
二、实体类和API
1.API
常用API包有:ava.lang (Enum、包装类、Math、String、StringBuffer、System)、java.util(工具类)
java.io(输入输出流) java.sql(数据库)
Api可以比喻成字典 根据类名 在文档内查找
2.包装类(实体类)
包装类把基本类型数据转换为对象:每个基本类型在Java.lang包里都有一个相应的包装类
包装类的作用:提供了一系列实用的方法 集合不允许存放基本数据类型数据,存放数字时,要用包装类型
2.所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例 public Type(type value) 如:
除Character类外,其他包装类可将一个字符串作为参数构造它们的实例 public Type(String value) 如:
3.注意事项
Boolean类构造方法参数为String类型时,若该字符串内容为true(不考虑大小写),则该Boolean对象表示true,否则表示false
当Number包装类构造方法参数为String
类型时,字符串不能为null,且该字符串必须可解析为相应的基本数据类型的数据,否则编译不通过,运行时会抛出NumberFormatException异常
4.包装类的常用方法
(1) XXXValue():包装类转换成基本类型 byteValue()、intValue() longValue()、shortValue()
doubleValue()、floatValue() charValue()、booleanValue()
(2) toString():以字符串形式返回包装对象表示的基本类型数据(基本类型->字符串)或
parseXXX():把字符串转换为相应的基本数据类型数据(Character除外)(字符串->基本类型)
(3) XXX.valueof:将基本数据类型 和字符串转换成包装类
代码实现如下:
packageshitilei;importjava.util.ArrayList;importjava.util.List;importcom.sun.xml.internal.ws.api.streaming.XMLStreamReaderFactory.Zephyr;public
classTest {public static voidmain(String[] args) {//基本数据类型是"."不出内容的
可以将基本数据类型转换为对象//方法一
int i=9;
List list=newArrayList();
list.add(i);//本身集合中不能存放基本数据类型 但是在添加的时候有了jdk自动装箱的操作//所有的包装类都有的构造方法 对应的数据类型做参数
int j=9;
Integer j1=newInteger(j);
Double double1=new Double(9.8);//方法二//除Character之外的都有的构造方法 将字符串做参数
Integer j3=new Integer("9");//字符串必须符合定义的数据的格式否则会报错
Double double2=new Double("9.8");//Character caCharacter=new
Character("a");//编译报错//方法三//valueof()//(1)基本数据类型转包装类
Integer iiiInteger=Integer.valueOf(99);//(2)如何把字符串转成包装类
Integer
iinInteger=Integer.valueOf("99");//***************************************************************************//包装类转换基本类型
Integer aaInteger=new Integer(99);
System.out.println(aaInteger.intValue());//基本类型转字符串
int num=9;
String ing=Integer.toString(9);//其他的类似//字符串转基本数据类型
int num1=Integer.parseInt("99");
}
}
5.拆箱和装箱
概念:在jdk1.5版本后 基本数据类型和包装类自动转换换 装箱:基本类型转换为包装类的对象 拆箱:包装类对象转换为基本类型的值
特点:JDK1.5后,允许基本数据类型和包装类型进行混合数学运算 包装类并不是用来取代基本数据类型的 在基本数据类型需要用对象表示时使用
6.math类
java.lang.Math类提供了常用的数学运算方法和两个静态常量E(自然对数的底数) 和PI(圆周率)
常用的方法:
packageshitilei;public classMathtest {public static voidmain(String[] args)
{//随机生成0-10的浮点数
System.out.println(Math.random()*10);//生成随机的整数 强制转换成int
System.out.println((int)Math.random()*10);//绝对值
System.out.println(Math.abs(-33));//最大值
System.out.println(Math.max(22, 5));
}
}
7.Random类
Random rand = new Random(); //创建一个Random对象
for (int i = 0; i < 20; i++) {//随机生成20个随机整数,并显示
int num = rand.nextInt(10);//返回下一个伪随机数,整型的
System.out.println("第"+(i+1)+"个随机数是:"+num);
}
packageshitilei;importjava.util.Random;public classRodemtest {public static
voidmain(String[] args) {//不同的种子构造对象生成的随机数是不一样的
Random rand = new Random(56); //创建一个Random对象
Random rand2=new Random(56);
System.out.println(( rand.nextInt(10)));
System.out.println( rand2.nextInt(10));
}
}
由此可见用同一个种子值来初始化两个Random 对象,然后用每个对象调用相同的方法,得到的随机数也是相同的
8.String类
String类位于java.lang包中,具有丰富的方法 计算字符串的长度、比较字符串、
packageshitilei;importjava.util.Scanner;public classStringTest {public static
voidmain(String[] args) {
String a=" admin ";
String p="123456";
Scanner input=newScanner(System.in);
System.out.println("请输入用户名");
String username=input.next();
System.out.println("请输入密码");
String pwd=input.next();//trim()去掉字符串两端的空格
a.trim();//lenght()判断字符串长度//String 从写了equels方法变成了比较两个字符串是否为同一对象
if (pwd.length()<6&&username.equals(a)) {//比较条件可以写成pwd.length()<6&&username==a
==是比较的地址
System.out.println("登录成功");
}else{
System.out.println("登录长度不足六位或用户名错误");
}//*************************************************************
String str1="BDQN";
String str2="bdqn";//区分大小写
System.out.println(str1.equals(str2));//不区分大小写
System.out.println(str1.equalsIgnoreCase(str2));//转换小写比较
System.out.println(str1.toLowerCase().equals(str2.toLowerCase()));//转换大写比较
System.out.println(str1.toUpperCase().equals(str2.toUpperCase()));
}
}
提取字符串
packageshitilei;importjava.util.Scanner;importsun.net.www.content.audio.wav;public
classStringjiequ {public static voidmain(String[] args) {
String shou="hello my name is wuxuewei";//查找某个字符出现的位置
System.out.println(shou.indexOf("w"));//查找最后一个w出现的位置
System.out.println(shou.lastIndexOf("w"));//截取字符串
System.out.println(shou.substring(4));//从第四截取到最后//起始位置 结束位置
System.out.println(shou.substring(0, 5));
System.out.println("*******************************************");//字符截取的练习
Scanner input=newScanner(System.in);
System.out.println("=====欢迎提交作业=====");
System.out.println("请输入文件名");
String name=input.next();
System.out.println("请输入邮箱");
String yx=input.next();//检查文件名
boolean nameflag = false;int i=name.indexOf(".");if
(i!=-1&&i!=0&&name.substring(i).equals(".java")) {
nameflag=true;
}else{
System.out.println("文件名无效");
}//检查邮箱名
boolean yxflag = false;int aite=yx.indexOf("@");int dian=yx.indexOf(".");if
(aite!=-1&&dian!=-1&&dian>aite) {
yxflag=true;
}else{
System.out.println("邮箱无效");
}if (yxflag &&nameflag) {
System.out.println("提交成功");
}else{
System.out.println("提交失败");
}
}
}
System.out.println("***************字符串拆分****************");//字符串拆分方法 split();
String shici = "长亭外 古道边 晚风拂柳醉斜阳";
String[] chafen= new String[100];
System.out.println("拆分前" +shici);
System.out.println("拆分后");
chafen= shici.split(" ");for(String string : chafen) {
System.out.println(string);
}
System.out.println("*********查询字符出现的次数********");
System.out.println("请输入一字符串");
String chaifen2=input.next();
System.out.println("请输入你要查询的字符");
String chazi=input.next();
String chaifen2s[]=chaifen2.split("*");int count=0;for (int j = 0; j <
chaifen2s.length; j++) {if(chaifen2s[j].equals(chazi)) {
count++;
}
}
System.out.println("查询的字符出现了"+count);
9.StringBuffyer类
StringBuffer:对字符串频繁修改时,使用它来大大提高程序执行效率
StringBuffer的使用:
packageshitilei;public classStringBufferDome {public static voidmain(String[]
args) {//String →StringBuffer
StringBuffer str=new StringBuffer("hello");//StringBuffer→String
String s=str.toString();//StringBuffer添加内容
str.append("word");
System.out.println(str);//insert 插入内容
str.insert(5, ",");
System.out.println(str);
}
}
10.获取当前时间
packageshitilei;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;public
classDateDome {public static voidmain(String[] args) {//当前时间
Date date=newDate();
System.out.println(date);
System.out.println("******************************************");//设置时间格式
SimpleDateFormat fomator=new SimpleDateFormat("yyyy-MM-dd-mm:ss");
String string=fomator.format(date);
System.out.println(string);
System.out.println("*********************************************");//通过calendar类
Calendar s=Calendar.getInstance();
System.out.println(s.get(Calendar.YEAR)+"年"+(s.get(Calendar.MONTH)+1)+"月"+s.get(Calendar.DAY_OF_MONTH));
System.out.println("今天是星期"+s.get(Calendar.DAY_OF_WEEK));
}
}