Java基础类库方法

  1. StringBuffer
  • String是无法被改变的,StringBuffer是可以改变的
public static void main(String[] args) {
	StringBuffer buf = new StringBuffer();
	buf.append("Hello").append(" World")
	change(buf);
	System.out.println(buf);  //buf的值经方法调用后改变了
}

public static void change(StringBuffer temp) {
	temp.append(" !!!")
}
  • StringBuffer类转String类
public static void main(String[] args) {
	StringBuffer buf = new StringBuffer();
	buf.append("hello");
	String str = buf.toString();
}
  • 可以用contentEquals方法来比较StringBuffer类和String类
  • reverse方法实现字符串反转
  • insert(int index, String buf) / delete(int start, int end)
buf.insert(0,"nihao");
  • StringBuilder和StringBuffer类基本相似,StringBuffer是同步方法,具有多线程安全性,StringBuilder是异步方法,不具有多线程安全性。
  1. Runtime类
//调用方法:
Runtime run = Runtime.getRuntime();
run.maxMemory()
run.totalMemory();
run.freeMemory();
run.gc() //释放垃圾空间
  1. System类
    System.currentTimeMillies(); 获取当前时间

  2. Math类
    注意四舍五入round()方法对于负数的四舍五入不太一样。比如round(-15.5)是15而不是16.

  3. BigInteger / BigDecimal类
    BigDecimal要四舍五入可以借助divide方法除1,并利用BigDecimal.ROUND_HALF_UP。

  4. Date类

Date date = new Date();
System.out.println(date); //即输出当前时间
  • Date与long之间的转换
long curTime = System.currentTimeMillies();
Date date = new Date(cur); //long to Date
long longdate = date.getTime(); //Date to long
  1. SimpleDateFormat 日期格式化;可以将Date型转成String型。
  • 年(yyyy),月(MM),日(dd),时(HH),分(mm),秒(ss),毫秒(SSS)
  • 构造方法: public SimpleDateFormat(String pattern);
  • Date转String:public final String format(Date date);
  • String转Date:public Date parse(String source) throws parseException;
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
String strTime = sdf.format(date);
System.out.println(strTime); //返回构造方法中的格式化日期

//String转Date
String str = "2020-04-01 10:23:38:111";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
Date date = sdf.parse(str);
  1. Calendar类
    可直接加减计算年月日等
Calendar cal = Calendar.getInstance();
cal.get(Calendar.YEAR);
cal.get(Calendar.MONTH)+1; //month从0月开始算,所以需要+1
cal.get(Calendar.DAY_OF_MONTH);
cal.get(Calendar.HOUR_OF_DAY);
  1. Comparable接口 / Comparator接口
  • 在不能更改类定义的情况下,即不能使用Comparable接口,我们可以使用Comparator接口来挽救比较的需求。
  • Comparable借助Arrays.sort()完成排序;Comparator借助重载后的sort方法排序:Arrays.sort(books, new bookComparator());
  • 大多数时候使用comparable。
  1. 正则表达式
  • 字符集
    [abc]: 匹配字母a、b、c中任意一位
    [ ^abc]: 不是abc中的字母
    [a-z]: 所有小写字母
    [a-zA-Z]:所有字母不分大小写
    [0-9]: 任意数字

  • 简化的字符集表达式
    .:任意的一位字符
    \d: 简化的[0-9]表达式
    \D: 简化的“[^0-9]”,表示非数字类
    \s: 表示任意的空白字符; \t,\n都属于空白字符
    \S: 表示任意的非空白字符
    \w: 等价与[a-zA-Z_0-9], 表示由任意数字字母下划线组成
    \W:任意的非数字非字母非下划线

  • 数量表达式
    正则?: 表示该正则可以出现0次或1次
    正则+: 表示该正则可以出现1次或1次以上
    正则*: 表示可以出现0、1或多次
    正则{n}: 表示正好出现n次
    正则{n,}: 表示正好出现n次以上
    正则{n,m}: 表示正好出现n次到m次

String str = "1";
str.matches("\\d?");  //return true or false
  • 逻辑运算
    正则1正则2: 先判断正则1然后判断正则2
    正则1|正则2: 正则1或正则2有一组满足即可
    (正则): 多个正则为一组,然后添加次数判断
  1. 文件操作类

字符流输出

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
path = "e:" + File.separator + "demo" + File.separator + "hello" + File.separator + "test.txt";
File file = new File(path)if (!file.getParentFile().exists()) {
	file.getParentFile().mkdirs(); //创建所有父目录
}
if (file.exists()) {
	file.delete();
} else {
	System.out.print(file.createNewFile()); //创建文件返回true
}
OutputStream output = new FileOutputStream(file,true); //true是追加模式,不加true则为覆写模式
String str = "sjdlkahsflkahf! \r\n"; //\r\n换行
byte[] data = str.getBytes();
output.write(data);
output.close();

字符流输入

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
path = "e:" + File.separator + "demo" + File.separator + "hello" + File.separator + "test.txt";
File file = new File(path)if (!file.getParentFile().exists()) {
	file.getParentFile().mkdirs(); //创建所有父目录
}
if (file.exists()) {
	InputStream input = new FileInputStream(file); 
	byte[] data = new byte[1024];
	int foot = 0;
	int temp = 0;
	while ((temp = input.read()) != -1) {
		data[foot++] = (byte) temp;
	}
	input.close();
	System.out.println("[" + new String(data,0,foot) + "]")
}

字节流

import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import java.io.FileReader;
import java.io.Reader;
//输出
Writer out = new FileWriter(file); 
String str = "sjdlkahsflkahf! \r\n"; //\r\n换行
out.write(str);
out.close();

//输入
Reader in = new FileReader(file);
char[] data = new char[1024];
int len = in.read(data);
in.close();
System.out.println("["+new String(data,0,len) + "]")

字符流处理中文内容;字节流可以处理图片、音乐、电影、文字等。大多数情况使用字节流。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值