1.Calender:日历类,为日历字段之间提供了一些转换方法,该类为抽象。
成员方法:public int get(int field):返回给定日历字段的值
public void add(int field,int amount):根据amount修改field的值
public void set(int year,int month,int date):设置当前日历的年月日
exp:键盘录入年份,获取任意一年的二月有多少天
import java.util.Calendar;
import java.util.Scanner;
public class FebDemo {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int y=sc.nextInt(); //输入年份
Calendar c=Calendar.getInstance(); //使用默认时区获取一个日历
c.set(y, 2, 0); //设置日期,由于默认一月为0,所以三月为2,
//而三月零号即为三月一号减一,默认是二月的最后一天
int day=c.getActualMaximum(Calendar.DAY_OF_MONTH);//返回该日历字段中的日期。
System.out.println(day); //输出二月天数
}
}
2.正则表达式:符合一定规则的字符串。
exp:键盘录入qq号码,校验QQ号码。(5到15位,0不能开头)
import java.util.Scanner;
import java.util.regex.Pattern;
public class qqDemo2 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String s=sc.nextLine(); //输入所判断字符串
String reg="[1-9][0-9]{4,14}"; //编写正则表达式
boolean b=Pattern.matches(reg, s);//返回判断结果
System.out.println(b);
}
}
3.规定字符在正则表达式中的表示:
A字符:字母不变,//表示/。
B字符类:[abc] a、b 或 c 。 [^abc] 任何字符,除了 a、b 或 c 。[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内
[0-9] 0-9字符
C转义字符:\d,数字[0-9].\w,单词字符
D数量词:X{n,m} X,至少 n 次,但是不超过 m 次,X? X,一次或一次也没有,X* X,零次或多次
4.分割功能:public String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。
exp:键入一个字符串,由数字和空格构成,将其中数字案升序输出,以空格隔开。
import java.util.Scanner;
public class regDemo2 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String s=sc.nextLine(); //键入字符串
String reg=" "; //正则表达式空格
String[]strs=s.split(reg); //按正则规则断开
char[][]arr=new char[strs.length][] ; //建立二位字符数组接受字符串数组
for (int i = 0; i < strs.length; i++) {
arr[i]=strs[i].toCharArray();
}
for (int j = 0; j < arr.length-1; j++) { //冒泡排序,调整每个一维数组的索引
for (int i = 0; i < arr.length-j-1; i++) { //若一维数组长度不同,直接判断大小
char[]ar=null;
if(arr[i].length>arr[i+1].length){
ar=arr[i];
arr[i]=arr[i+1];
arr[i+1]=ar;
}
else if(arr[i].length==arr[i+1].length){//长度相同,一次比较
for (int j2 = 0; j2 < arr[i].length; j2++) {
if(arr[i][j2]>arr[i+1][j2]){
ar=arr[i];
arr[i]=arr[i+1];
arr[i+1]=ar;
break; //得出结果时退出
}else if(arr[i][j2]<arr[i+1][j2]){
break; //若为升序直接退出,余下位数不比较
}
}
}
}
}
for (int i = 0; i < arr.length; i++) { //遍历二维数组
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]);
}
System.out.print(" ");
}
}
}
5.替换功能:public String replaceAll(String regex,String replacement):把符合regex的用replacement替换