常用的Java类方法
Number & Math 类方法
compareTo():将Number对象与参数比较
equals():判断Number对象是否与参数相等
valueOf():返回Number对象指定的内置数据类型
toString()以字符串形式返回值
parseInt():将字符串解析为int类型
abs():绝对值
ceil():返回大于等于给定参数的最小整数
floor():返回小于等于给定参数的最大整数
rint():返回与参数最接近的整数
round():四舍五入,算法为Math.floor(x+0.5)
min():返回两个参数的最小值
max():返回两个参数的最大值
exp():返回自然数底数e的参数次方
log():返回参数的自然数底数的对数值
pow():返回第一个参数的第二个参数次方
sqrt():求参数的算术平方根
sin() asin():求指定double类型的正弦值、反正弦值
cos() acos():求指定double类型的余弦值、反余弦值
tan() atan():求指定double类型的正切值、反正切值
atin2():将笛卡尔坐标转换为极坐标,并返回极坐标的角度值
toDegrees():将参数转化为角度
toRadians():将角度转换为弧度
random():返回一个随机数
Character方法
isLetter()
isDigit()
isWhiterspace()
isUpperCase()
isLowerCase()
toUPperCase()
toLowerCase()
toString():返回字符的字符串形式,长度仅为1
String类
不可改变,如需对字符串做很多修改,选择StringBuffer&StringBuilder类
char charAt(int index):指定索引处的char值
int compareTo(Object to):和另一个对象比较
int compareTo(String anotherString):按字典顺序比较两个字符串
int compareToIgnoreCase(String str):不考虑大小写
String concat(String str):连接指定字符串到结尾
boolean contentEquals(StringBuffer sb):当且仅当字符串与指定的StringBuffer有相同顺序的字符时候返回真
static String copyValueOf(char[] data):返回指定数组中表示该字符序列的String
static String copyValueOf(char[] data, int offset, int count):返回指定数组中表示该字符序列的String
boolean endsWith(String suffix):是否以指定的后缀结束
boolean equeals(Object anObject):与指定对象比较
boolean equalsIgnoreCase(String anotherString):不考虑大小写
byte[].getBytes():使用平台的默认字符集将此String编码为byte序列,并将结果储存到一个新的byte数组中
byte[].getBytes(String charsetName):使用指定的字符集将此String编码为byte序列,并将结果储存到一个新的byte数组中
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin):复制到目标字符数组
int hashCode():哈希码
int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引
int indexOf(int ch, int fromIndex):从指定的索引开始搜索
int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引
int indexOf(String str, int fromIndex):从指定的索引开始搜索
String intern():返回字符串对象的规划化表示形式
int lastIndexOf(int ch):返回指定字符在此字符串最后一次出现处的索引
int lastIndexOf(int ch, fromIndex):从指定的索引开始反向搜索
int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引
int lastIndexOf(String str, int fromIndex):返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索
int length():长度
boolean matches(String regex):是否匹配给定的正则表达式
boolean regionMatches(boolean ignoreCase, int toffset, String other, int offest, int len):两个字符串区域是否相等
boolean regionMatches(int toffset, String other, int ooffset, int len):两个字符串区域是否相等
String replace(char oldChar, char newChar):用newChat替换此字符串中出现的所有oldChat,返回新的字符串
String replaceAll(String regex, String replacement):使用给定的replacement替换所有匹配正则表达式的子字符串
String replaceFirst(String regex, String replacement):替换第一个子字符串
String[] split(String regex):根据给定正则表达式拆分
String[] split(String regex, int limit):根据给定正则表达式拆分
boolean startsWith(String.prefix):是否以指定前缀开始
boolean startsWith(String prefix, int toffset):从指定索引开始的子字符串是否以指定前缀开始
CharSequence subSequence(int beginIndex, int endIndex):返回一个子序列
String substring(int beginIndex):返回一个子字符串
String substring(int beginIndex, int endIndex):返回一个子字符串
char[] toCharArray():转换为一个字符数组
String toLowerCase():转换为小写
String toLowerCase(Locale locale):使用给定Locale的规则将所有字符转换为小写
String toString():返回对象本身,它已经是一个字符串
String toUpperCase():转换为大写
String toUpperCase(Locale locale):使用给定Locale的规则将所有字符转换为大写
String trim():返回字符串的副本,忽略前后空白
static String valueOf(primitive data type x):返回给定data type类型x参数的字符串表示形式
StringBuffer & StringBuilder类
类的对象能被多次修改,并且不产生新的未使用对象
StringBuilder类和StringBuffer之间的最大不同在于StringBuilder的方法不是线程安全的(不能同步访问)
StringBuilder类有速度优势,多数情况下使用;在应用程序要求线程安全时,必须使用StringBuffer类
public StringBuffer append(String s):追加
public StringBuffer reverse():反转取代
public delete(int start, int end):移除此序列的子字符串中的字符
public insert(int offset, int i):将int参数的字符串表示形式插入此序列中
replace(int start, int end, String str):使用给定String中的字符替换此序列的子字符串中的字符
int capacity():当前容量
char charA(int index):返回此序列中指定索引处的char值
void ensureCapacity(int minimumCapacity):确保容量至少等于指定的最小值
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin):将字符从此序列复制到目标字符数组dst
int indexOf(String str)
int indexOf(String str, int fromIndex)
int lastIndexOf(String str)
int lastIndexOf(String str, int fromIndex)
int length()
void setCharAt(int index, char ch):将给定索引出的字符设置为ch
void setLength(int newLength):设置字符序列的长度
CharSequence subSequence(int start,int end)
String substring(int start)
String substring(int start, int end)
String toString()
Array类
提供的所有方法是静态的
public static int binarySearch(Object[] a, Object key):对排序好的数组进行二分查找操作,返回搜索键的索引,找不到返回-1
public static boolean equals(type[] a, type[] b):比较数组中元素值是否相等,如果两个数组以相同顺序包含相同的元素,返回true
public static void fill(type[] a, type val):将指定类型的值分配给指定类型数组指定范围中的每个元素
public static void sort(type[] a):对指定类型(Object、Byte、short、Int等)数组根据其元素的自然顺序进行升序排序
Date类日期时间
Date():使用当前日期和时间来初始化对象
Date(long millisec):millisec是从1970年1月1日起的毫秒数
boolean after(Date date)
boolean before(Date date)
Object clone():返回此对象的副本
int compareTo(Date date):比较,相等返回0,调用对象在指定日期之前返回负数,之后返回正数
boolean equals(Object date)
long getTime():返回自1970年1月1日00:00:00 GMT以来Date对象表示的毫秒数
int hashCode()
void setTime(long time)
String toString():把Date对象转换为以下形式的String:dow mon dd hh:mm:ss zzz yyyy 其中dow取Sun,Mon,Tue,Wed,Thu,Fri,Sat
SimpleDateFormat格式化日期
import java.util.*;
import java.text.*;
public class Demo {
public static void main(String[] args) {
Date dNow = new Date();
SimpleDateFormat ft = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss");
System.out.println("Current Date: " + ft.format(dNow));
}
}
G:纪元标记,如AD
y:四位年份,如2018
M:月份,July or 07
d:日期
h:A.M./P.M.12小时格式
H:24小时格式,0~23
m:分钟数,0~59
s:秒数,0~59
S:毫秒
E:星期几,如Tuesday
D:一年中的日子,如360
F:一个月中第几周的周几,如second Wed. in July
w:一年中第几周,1~53
W:一个月中第几周,1~6
a:A.M./P.M.标记
k:一天中的小时,1~24
K:A.M./P.M.(0~11)格式小时
z:时区
‘:文字定界符,如Delimiter
”:单引号
SimpleDateFormat格式化日期
设置和获取日期数据的特定部分
创建Calendar对象
Calendar c1 = Calendar.getInstance();
// c1.set(2018, 5, 12);
对象字段类型
Calendar.YEAR
Calendar.MONTH
Calendar.DATE(Calendar.DAY_OF_MONTH)
Calendar.HOUR:12小时制
Calendar.HOUR_OF_DAY:24小时制
Calendar.MINUTE
Calendar.SECOND
Calendar.DAY_OF_WEEK:星期几,1表示星期日,7表示星期六
方法
public final void set(int year, int month, int date):设置年月日
public void set(int field, int value):设置某个字段
add(int field, int value):加上或减去一段时间
get(int field):获得对象信息
Java正则表达式
在其他语言中,\表示我想要在正则表达式中插入一个普通的反斜杠,请不要给它任何特殊意义;在Java中,\表示我要插入一个正则表达式的反斜线,其后的字符具有特殊的意义。
一位数字的正则表达式是\d,表示一个普通的反斜杠是\\
正则表达式语法
\:将下一字符标记为特殊字符、文本、反向引用或八进制转义符
^:开始位置
$:结尾位置
*:零次或多次,等效于{0,}
+:一次或多次,等效于{1,}
?:零次或一次,等效于{0,1}
{n}:刚好匹配n次
{n,}:至少匹配n次
{n,m}:匹配至少n次,之多m次。‘{0,1}’等效于‘?’,不能将空格插入逗号和数字之间
?:当?紧随其他限定符之后时,匹配模式是“非贪心的”,尽可能短
.
(pattern):匹配pattern并捕获该匹配的子表达式
(?:pattern):匹配pattern但不捕获该匹配的子表达式
(?=pattern):执行正向预测先行搜索的子表达式,该表达式匹配处于匹配pattern的字符串的起始点的字符串
(?!pattern):执行反向预测先行搜索的子表达式,该表达式匹配不处于匹配pattern的字符串的起始点的字符串
x|y:或
[xyz]:字符集,匹配包含的任意字符
[^xyz]:反向字符集
[a-z]:字符范围
[^a-z]:反向字符范围
\b:匹配一个字边界,即字与空格间的位置
\B:非字边界匹配
\cx:匹配x指示的控制字符
\d:数字字符匹配,等效于[0-9]
\D:非数字字符匹配,[^0-9]
\f:换页符匹配,\x0c和\cL
\n:换行符匹配,\x0a和\cJ
\r:回车符,\x0d和\cM
\s:匹配任何空白字符,\f\n\r\t\v
\S:匹配任何非空白字符
\t:制表符,\x09和\cI
\v:垂直制表符,\x0b和\cK
\w:匹配任何字类字符,包括下划线,等效于”[A-Za-z0-9_]”
\W:任何非单词字符,”[^A-Za-z0-9_]”
\xn:匹配n,此处n是一个十六进制转义码
\num:此处num是一个正整数。到捕获匹配的反向引用
\n:标识一个八进制转义码或反向引用
\nm:标识一个八进制转义码或反向引用
\nml:当n是八进制数0-3,m和l是八进制数0-7时,匹配八进制转义符nml
\un:匹配n,n是以四位十六进制数表示的Unicode字符
Java方法
System.out.println():调用系统类System中的标准输出对象out中的方法println()
语句的集合,解决一类问题的步骤的有序组合
第一个单词小写字母开头,后面单词大写字母开头,不使用连接符
优点
简短清晰
利于程序维护
提高开发效率
提高代码重用性
方法的重载
一个类的两个方法有相同的名字,但是有不同的参数列表
可变参数
一个方法中只能指定一个可变参数,必须是方法的最后一个参数,任何普通的参数必须在它之前声明
Java流(Stream)、文件(File)和IO
一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。
读取控制台输入:BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
读取字符:br.read()
读取字符串:br.readLine()
控制台输出
print();
println();
FileInputStream:从文件读取数据
使用字符串类型的文件名来创建一个输入流对象来读取文件InputStream f = new FileInputStream(“C:/java/hello”);
使用一个文件对象来创建一个输入流对象来读取文件
File f = new File("C:/java/hello");
InputString out = new FileInputStream(f);
FileOutputStream:向文件写数据
Scanner类
获取用户的输入:Scanner s = new Scanner(System.in)
next方法获取输入的字符串
1.一定要读取到有效字符后才可结束输入
2.对输入有效字符之前的空白,自动去掉
3.只有输入有效字符后才将后面输入的空白作为分隔符或结束符
4.不能得到带有空格的字符串
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据
// next方式接收字符串
System.out.println("next方式接收:");
// 判断是否还有输入
if (scan.hasnext()) {
String str1 = scan.next();
System.out.println("输入的数据为:" + str1);
}
scan.close();
}
}
nextLine方法
1.返回输入回车之前的所有字符
2.可以获得空白
输入之前最好先使用hasNextXxx()方法进行验证,再使用nextXxx()来读取
Java异常处理
检查性异常(IOException):用户村务或问题引起,如打开一个不存在的文件时
运行时异常(RuntimeException):可以在编译时被忽略,可能被程序员避免
错误(Error):不是异常,错误在代码中通常被忽略,如JVM内存溢出
异常方法
public string getMessage()
public Throwable getCause()
public String toString()
public volid printStackTrace()
public StackTraceElement [] getStackTrace()
public Throwable filllnStackTrace()
捕获异常
catch不能独立于try存在
finally并非强制性要求
try代码后不能既没catch块也没finally块
try、catch、finally块之间不能添加任何代码
try{
//
}catch(ExceptionType1 e1){
//
}catch(ExceptionType2 e2){
//
}finally{
//
}