枚举:
什么是枚举?
答:枚举指由一组固定的常量组成的类型,使用关键字enum定义;
是java.lang.Enum类的子类,继承了Enum类的许多有用的方法。
使用枚举的好处?使用后保证了属性的正确赋值;类型安全、易于输出和赋值,代码清楚,
答:枚举可以使代码更易于维护,有助于确保为变量指定合法的、期望的值
枚举更易于编程时输入,使用枚举赋值,只需要输入枚举名,然后属于一个 点(.)就能将所有的值显示出来
枚举使代码更清晰,允许用描述性的名称表示数据,使用时更直观方便
在java中,通常使用枚举表示一组个数有限的值,用于实现对输出的值进行约束检查。
package cn.kgc.kgc67.demo4;
public enum Course { //enum是关键字
L1,L2,L3; //表示枚举常量,枚举常量之间用逗号隔开
}
package cn.kgc.kgc67.demo4;
public class Test {
public static void main(String[] args) {
Course course=Course.L1;
switch (course) { //可用于switch结构的变量类型:int、short、byte、char、 枚举类型、String
case L1:
System.out.println("大数据开发工程师");
break;
case L2:
System.out.println("大数据挖掘工程师");
break;
case L3:
System.out.println("大数据架构师");
break;
default:
break;
}
}
包装类
包装类把基本类型数据转换为对象
每个基本类型在java.lang包中都有一个相应的包装类、
包装类的主要用途
1:作为和基本数据类型对应的类存在,方便对象的操作
2:包装类包含每种基本数据类型的相关属性,如最大值 最小值等,以及相关的操作方法
包装类的作用
提供了一系列实用的方法
集合不允许存放基本数据类型数据,存放数字时,要用包装类型
所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例
public Type(type value)
如:Integer i=new Integer(1);
除Character类外,其他包装类可将一个字符串作为参数构造它们的实例
public Type(String value)
如:Integer i=new Integer("123");
注意事项
Boolean类构造方法参数为String类型时,若该字符串内容为true(不考虑大小写),则该Boolean对象表示true,否则表示false
当Number包装类构造方法参数为String 类型时,字符串不能为null,且该字符串必须可解析为相应的基本数据类型的数据,
否则编译不通过,运行时会抛出NumberFormatException异常
包装类和基本数据类型转换
XXXValue():包装类转换成基本类型
byteValue()、intValue()
longValue()、shortValue()
doubleValue()、floatValue()
charValue()、booleanValue()
Integer integerId=new Integer(25);
int intId=integerId.intValue();
// 字符串转基本类型
String str = "100";
int a = Integer.parseInt(str);
double b = Double.parseDouble(str);
byte c = Byte.parseByte(str);
short d = Short.parseShort(str);
char e = str.charAt(0);
// 基本类型转字符串
private static void method1() {
int a = 10;
String str1 = a + "";
double b = 100;
String str2 = b + "";
boolean c = true;
String str3 = c + "";
/*
* Integer d=new Integer(a); String str4 =d.toString();
*
* Boolean temp=new Boolean(c); String str5=temp.toString();
*/
toString():以字符串形式返回包装对象表示的基本类型数据(基本类型->字符串)
String sex=‘男’+"";
String id=25+"";
parseXXX():把字符串转换为相应的基本数据类型数据(Character除外)(字符串->基本类型)
int num=Integer.parseInt(“36”);
boolean bool=Boolean.parseBoolean(“false”);
valueOf() 除Character类外,其他包装类都有该方法(字符串->包装类)
所有包装类都有如下方法(基本类型->包装类)
public static Type valueOf(type value)
如:Integer intValue = Integer.valueOf(21);
除Character类外,其他包装类都有如下方法(字符串->包装类)
public static Type valueOf(String s)
如:Integer intValue = Integer.valueOf("21");
装箱和拆箱
基本类型和包装类的自动转换
Integer intObject = 5; int intValue = intObject;
装箱:基本类型转换为包装类的对象 拆箱:包装类对象转换为基本类型的值
math类
常用方法
int random = (int) (Math.random() * 10); //生成一个0-9之间的随机数
Random类
java.util.Random类
Random rand=new Random(); //创建一个Random对象
int num=rand.nextInt(10); //生成一个0-9之间的随机数
String类
使用String对象存储字符串
String类位于java.lang包中,具有丰富的方法 计算字符串的长度、比较字符串、连接字符串、提取字符串
String类提供了length()方法,确定字符串的长度 返回字符串中的字符数
String类提供了equals( )方法,比较存储在两个字符串对象的内容是否一致
== 与 equals的区别
(1) == 与 equals 比较两个对象是否是同一个对象。
(2) String类重写equals方法,比较字符串的值
使用equalsIgnoreCase()方法 //忽略大小写
使用toLowerCase()方法 //全部小写
使用toUpperCase()方法//全部大写
字符串连接
1:使用“+”
2:使用String类的concat()方法
2:示例
String str=“123”;
str=str.concat(“456”);输出结果为123456
方法名 | 说明 |
public int indexOf(int ch) | 搜索第一个出现的字符ch(或字符串value),如果没有找到,返回-1 |
public int indexOf(String value) | |
public int lastIndexOf(int ch) | 搜索最后一个出现的字符ch(或字符串value),如果没有找到,返回-1 |
public int lastIndexOf(String value) | |
public String substring(int index) | 提取从位置索引开始的字符串部分 |
public String substring(int beginindex, int endindex) | 提取beginindex和endindex之间的字符串部分 |
public String trim() | 返回一个前后不含任何空格的调用字符串的副本 |
public class demo1 {
public static void main(String[] args) {
String str, str2;
Scanner input = new Scanner(System.in);
System.out.println("请输入一个字符串:");
str = input.next();
System.out.println("请输入你要查找的字符:");
str2 = input.next();
int count = 0;
for (int i = 0; i < str.length(); i++) {
char temp = str.charAt(i);
String temp2 = temp + "";
if (temp2.equals(str2)) {
count++;
}
}
System.out.println(str + "中包含" + count + "个" + str2);
}
private static void method4() {
String words = "长亭外 古道边 芳草碧连天 晚风扶 柳笛声残 夕阳山外山";
System.out.println("***原歌词格式***");
System.out.println(words);
String[] printWords = words.split(" ");
System.out.println("***拆分后歌词格式***");
for (String temp : printWords) {
System.out.println(temp);
}
}
private static void method3() {
String word = "hello.txt";
if (word.endsWith(".java")) {
System.out.println("该件文是一个java文件");
} else {
System.out.println("该件文不是一个java文件");
}
}
StringBuffer
对字符串频繁修改(如字符串连接)时,使用StringBuffer类可以大大提高程序执行效率
常用方法:
toString() 方法;转化为String类型的语法格式如下:例如:字符串1.toString();
将StringBuffer类型的字符串1转换成String类型的字符串并返回;例如:String s1=sb2.toString();
append(参数) 追加字符串,将参数连接到字符串后并返回;和cancat()方法不同的是,String类中只能将String类型的字符串追加到一个字符串之后,StringBuffer类可以将任何类型的的值 追加到字符串之后
insert(位置,参数 )将参数插入到字符串指定位置后并返回,参数值可以包括String的任何类型
java.util.Date类:表示日期和时间,提供操作日期和时间各组成部分的方法
java.text.SimpleDateFormat类
package cn.kgc.kgc67;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class demo2 {
public static void main(String[] args) {
Calendar calendar=Calendar.getInstance();
calendar.set(Calendar.YEAR, 2015);
calendar.set(Calendar.MONTH, 3);
calendar.set(Calendar.DAY_OF_MONTH, 6);
int weekOfYear=calendar.get(Calendar.WEEK_OF_YEAR);
System.out.println("第几周"+weekOfYear);
Date date=calendar.getTime();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
String times=sdf.format(date);
System.out.println(times);
}
}
Calendar类是抽象类,java.util.Calendar
用于设置和获取日期/时间数据的特定部分
package cn.kgc.kgc67;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FileTest {
public static void main(String[] args) throws Exception {
File parentFile=new File("D:" + File.separator + "Test1");
File helloWorldFile = new File(parentFile,"helloWorld.java");
if (!helloWorldFile.exists()) {
helloWorldFile.delete();
} else {
System.out.println("文件夹不存在");
}
}
private static void method2() throws IOException {
File helloWorldFile = new File("D:" + File.separator + "Test1"
+ File.separator + "helloWorld.java");
if (!helloWorldFile.exists()) {//判断文件是否存在
helloWorldFile.createNewFile();//创建文件
} else {
boolean canRead = helloWorldFile.canRead();
boolean canWrite = helloWorldFile.canWrite();
boolean canExecute = helloWorldFile.canExecute();
long size = helloWorldFile.length();
System.out.println(canRead + "==" + canWrite + "==" + canExecute);
System.out.println("文件大小:" + size);
}
}
private static void method1() {
// 在D:/盘创建Test1
File file = new File("D:" + File.separator + "Test1");
// 判断文件夹是否存在,如果文件夹不存在,创建文件夹
if (!file.exists()) {
file.mkdir();
} else {// 如果存在,获得文件夹的最后修改时间
long misSeconds = file.lastModified();
Date date = new Date(misSeconds);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
String modifiedTime = sdf.format(date);
System.out.println(modifiedTime);
}
}
}