实用类
包装类
包装类常用方法
XXXValue():包装类转换成基本类型
toString :以字符串形式返回包装对象表示的基本类型数据(基本类型->字符串)
parseXXX():把字符串转换为相应的基本数据类型数据(Character除外)(字符串->基本类型
valueOf()
所有包装类都有如下方法(基本类型->包装类)
public static Type valueOf(type value)
除Character类外,其他包装类都有如下方法(字符串->包装类)
public static Type valueOf(String s)
public static void main(String[] args) {
//包装类常用方法:XXXValue():包装类转换成基本类型
Byte byte1 = new Byte("12");
byte num1 = byte1.byteValue();
System.out.println(num1);
Boolean bool = new Boolean("True");
boolean num2= bool.booleanValue();
System.out.println(num2);
Character ch = new Character('a');
char num3 = ch.charValue();
System.out.println(num3);
//toString :以字符串形式返回包装对象表示的基本类型数据(基本类型->字符串)
byte num4=10;
String str=Byte.toString(num4);
System.out.println(str);
String str2=Boolean.toString(false);
System.out.println(str2);
//parseXXX()把字符串转换为相应的基本数据类型数据(Character除外)(字符串->基本类型)
int num5=Integer.parseInt("32");
System.out.println(num5);
boolean num6=Boolean.parseBoolean("faad");
System.out.println(num6);
//valueOf()所有包装类都有如下方法(基本类型->包装类)public static Type valueOf(type value)
Integer int1=Integer.valueOf(100);
System.out.println(int1);
//除Character类外,其他包装类都有如下方法(字符串->包装类)
Long long1= Long.valueOf("200");
System.out.println(long1);
}
装箱和拆箱
装箱:基本类型转换为包装类的对象
拆箱:包装类对象转换为基本类型的值
byte num1 = 10;
// Byte byte1 = new Byte(num1);
//装箱:基本数据类型直接赋值给包装类类型的对象
Byte byte1 = num1;
//拆箱:包装类型数据直接赋值给基本类型的变量
Integer int1 = new Integer("13");
int num2 = int1;
//相互之间可以运算
Integer int2 = new Integer("255");
int num3=300;
int result=int2+num3;
Integer int3=int2+num3;
包装类的特点
JDK1.5后,允许基本数据类型和包装类型进行混合数学运算
包装类并不是用来取代基本数据类型的
在基本数据类型需要用对象表示时使用
Math类
java.lang.Math类提供了常用的数学运算方法和两个静态常量E(自然对数的底数) 和PI(圆周率)
double pi =Math.PI;
System.out.println(pi);
System.out.println(Math.max(100, 200));
System.out.println(Math.min(99, 199));
System.out.println(Math.abs(-10));
System.out.println(Math.floor(9.4));//返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。
System.out.println(Math.ceil(9.1));//返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。
System.out.println(Math.round(10.1));//四舍五入
//随机数方法:随机返回一个介于0.0(包括)~1.0(不包括)之间的double类型的数据
double num1=Math.random();
System.out.println(num1);
Random类
生成随机数的其他方式
java.util.Random类
用同一个种子值来初始化两个Random 对象,然后用每个对象调用相同的方法,得到的随机数也是相同的
// 创建Random类对象
Random random = new Random();
int result = random.nextInt();
System.out.println(result);
System.out.println(random.nextBoolean());
//创建random对象
Random random2= new Random(10);
System.out.println(random2.nextInt());
Random random3 = new Random();
System.out.println(random3.nextInt(10));//随机生成一个[0,10)的数
Random r1= new Random(100);
Random r2= new Random(100);
System.out.println(r1.nextInt());
System.out.println(r2.nextInt());
}
String类
String类位于java.lang包中,具有丰富的方法
计算字符串的长度、比较字符串、连接字符串、提取字符串
String类提供了length()方法,确定字符串的长度
返回字符串中的字符数
String类提供了equals( )方法,比较存储在两个字符串对象的内容是否一致
==”和equals()的区别
==:判断两个字符串在内存中的地址,即判断是否是同一个字符串对象
equals():检查组成字符串内容的字符是否完全一致
字符串比较的其他方法
使用equalsIgnoreCase()方法
使用toLowerCase()方法
使用toUpperCase()方法
字符串连接
方法1:使用“+”
方法2:使用String类的concat()方法
字符串常用提取方法
public int indexOf(int ch)
public int indexOf(String value)
public int lastIndexOf(int ch)
public int lastIndexOf(String value)
public String substring(int index)
提取从位置索引开始的字符串部分
public String substring(int beginindex, int endindex)
提取beginindex和endindex之间的字符串部分
public String trim()
返回一个前后不含任何空格的调用字符串的副本
搜索第一个出现的字符ch(或字符串value),如果没有找到,返回-1
搜索最后一个出现的字符ch(或字符串value),如果没有找到,返回-1
// 获取字符串长度
String string1 = "qwertyuiop";
int length = string1.length();
System.out.println("字符串的长度是"+length);
/*
* 获取数组长度:数组名.length
* 获取集合长度:集合名.size()
* 获取字符串长度:字符串对象名。length()
*/
//比较两个字符串的内容是否相同
String str1 = "qwe";
String str2 = "qwe";
System.out.println(str1.equals(str2));//true
System.out.println(str1==str2);//true
System.out.println("---------------");
String str3 = new String("abc");
String str4 = new String("abc");
System.out.println(str3.equals(str4));//true
System.out.println(str3==str4);//false
System.out.println("--------------");
//字符串比较的其他方法
String str5 = "qwert";
String str6 = "QWERT";
System.out.println(str5.equals(str6));//false
//equalsIgnoreCase不区分大小写比较
System.out.println(str5.equalsIgnoreCase(str6));//true
//转化为小写
String result=str6.toLowerCase();
System.out.println(str6);//QWERT //字符串对象调用方法后,不会改变自身的内容,相当于是对它的复制品进行了修改
System.out.println(result);//qwert
//转化为大写
System.out.println(str5.toUpperCase());
StringBuffer类
对字符串频繁修改(如字符串连接)时,使用StringBuffer类可以大大提高程序执行效率
StringBuffer声明
StringBuffer strb = new StringBuffer();
StringBuffer strb = new StringBuffer("aaa");
StringBuffer的使用
sb.toString(); //转化为String类型
sb.append("**"); //追加字符串
sb.insert (1, "**"); //插入字符串
String类&StringBuffer类
经常改变内容的字符串最好不要使用String
String是不可变对象 StringBuffer是可变的字符串
字符串经常改变的情况可使用StringBuffer,更高效
JDK5.0后提供了StringBuilder,等价StringBuffer
public static void main(String[] args) {
String str1 = "qwertyuiop";
StringBuffer sb1 = new StringBuffer("qwert");
//String类对象调用方法之后,对原来String对象中的内容没有影响
System.out.println(str1);
System.out.println(str1.substring(2));
System.out.println(str1);
System.out.println("------------");
//StringBuffer类对象调用方法返回结果还是StringBuffer的,这时候会改变StringBUffer对象里的内容
System.out.println(sb1);
sb1.substring(2);
System.out.println(sb1.insert(2,"abc"));
System.out.println(sb1);
System.out.println(sb1.toString());
System.out.println("---------");
//在末尾追加内容
System.out.println(sb1);
System.out.println(sb1.append("asd"));
System.out.println(sb1);
}
操作日期时间
获取当前日期
java.util.Date类:表示日期和时间
提供操作日期和时间各组成部分的方法
java.text.SimpleDateFormat类
public static void main(String[] args) {
Date date = new Date();
System.out.println(date);
//在Date类中很多方法都已经过时了,使用Calendar类替代
// System.out.println(date.getYear()+1900);
// System.out.println(date.getMonth()+1);
// System.out.println(date.getDay());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss-SSS E D");
String str=sdf.format(date);
System.out.println(str);
java.util.Calendar
Calendar类是一个抽象类,不能直接实例化,可以通过该类中一个静态方法创建其引用
public static void main(String[] args) {
//Calendar类是一个抽象类,不能直接实例化,可以通过该类中一个静态方法创建其引用
Calendar cal=Calendar.getInstance();
//获取年
int year=cal.get(Calendar.YEAR);
System.out.println(year);
//获取月
int month=cal.get(Calendar.MONTH);
System.out.println(month+1);
//获取日
int date=cal.get(Calendar.DATE);
System.out.println(date);
//获取时分秒
System.out.println(cal.get(Calendar.HOUR)+":"+cal.get(Calendar.MONTH)+":"+cal.get(Calendar.SECOND));
//获取星期
int day_of_week=cal.get(Calendar.DAY_OF_WEEK);
System.out.println(day_of_week-1);
//获取当前日期是这一年中的第多少天
System.out.println(cal.get(Calendar.DAY_OF_YEAR));
}