——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
B:案例演示
需求:校验qq号码.
a:非正则表达式实现
public static boolean checkQQ(String qq) {
boolean flag = true;
// 1.验证长度是5-15之间 String类的length()
int len = qq.length();
if (!(len >= 5 && len <= 15)) {
flag = false;
}
// 2.验证不能以0开头
// substring charAt startsWith
if (qq.startsWith("0")) {
flag = false;
}
// 3.验证qq号码是数字组成
char[] ch = qq.toCharArray();
for (int i = 0; i < ch.length; i++) {
// if(!(ch[i]>='0'&&ch[i]<='9')){
if (!Character.isDigit(ch[i])) {
flag = false;
break;
}
}
return flag;
}
public static void main(String[] args) {
// 从键盘接收qq
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的QQ号码");
String qq = sc.nextLine();
// 调用checkQQ方法进行验证
boolean flag = checkQQ(qq);
System.out.println(flag);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的QQ号码");
String qq = sc.nextLine();
boolean flag = checkQQ(qq);
System.out.println(flag);
}
public static boolean checkQQ(String qq) {
return qq.matches("[1-9][0-9]{4,14}");
}
见下
String st = "91 27 46 38 50";
// 将字符串使用空格切割 ["91","27","46","38","50"]
String regex = " +";
String[] str = st.split(regex);
System.out.println(Arrays.toString(str));
// 将字符串数组中的所有字符串转换成数字,并将这些字符串放到int[]
int[] arr = new int[str.length];
//将str字符串数组中的每一个字符串得到,转换成int类型数字,将其装入到arr数组中。
for (int i = 0; i < str.length; i++) {
arr[i] = Integer.parseInt(str[i]);
}
// System.out.println(Arrays.toString(arr));
//排序输出
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
String s="abcd6efg34hi3jk221lm6n";
//String ss=s.replaceAll("[0-9]+", "*");
String ss=s.replaceAll("\\d+", "*");
System.out.println(ss);
1 ((A)(B(C)))
2 \A
3 (B(C))
4 (C)
组零始终代表整个表达式。
B:案例演示
a:切割
需求:请按照叠词切割: “sdqqfgkkkhjppppkl”;//”(.)\1+”
b:替换
需求:我我….我…我.要…要要…要学….学学..学.编..编编.编.程.程.程..程
将字符串还原成:“我要学编程”。//
String s = "我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程";
String temp = s.replaceAll("\\.+", "");
String ss = temp.replaceAll("(.)\\1+", "$1");//$1表示 正则获取到的第一组
System.out.println(ss);
B:模式和匹配器的典型调用顺序
通过JDK提供的API,查看Pattern类的说明
典型的调用顺序是
String s = "我我13146319176我012344我121323要13281194733要要...要学....学学..学.编..编编.编.程.程.程..程";
Pattern p = Pattern.compile("[1][34578]\\d{9}");
Matcher m = p.matcher(s);
while (m.find()) {
String subStr = m.group();
System.out.println(subStr);
}
}
A:BigDecimal的概述
所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal
不可变的、任意精度的有符号十进制数。
String s = "1988-10-08";
// 1.根据出生年月日得以一个Date对象birthday。
Date birthday = DateFormatUtils.StringToDate(s, "yyyy-MM-dd");
// 2.得到birthday代表的毫秒值
long l1 = birthday.getTime();
// 3.使用现在的时间毫秒值-birthday毫秒值 = 从出生到现在经过的毫秒。
long l = System.currentTimeMillis() - l1;
// long l = new Date().getTime() - l1;
// 4.使用毫秒值/一天的毫秒=活了多少天.
System.out.println(l / (24 * 60 * 60 * 1000));
public class DateFormatUtils {
// 1.可以将字符串分析成Date对象
/**
* 参数: s:代表的是要解析的字符串 pattern:模板 返回值: 将s解析后的Date对象
*
* @throws ParseException
*/
public static Date StringToDate(String s, String pattern)
throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.parse(s);
}
// 2.可以将一个Date对象格式化成String
/**
* 参数:
* d:代表的是要格式化的Date对象
* pattern:模板
* 返回值:
* 它是d按照pattern模板格式化的字符串结果
*/
public static String DateToString(Date d, String pattern) {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(d);
}
}
* 日期工具类的测试
public class DateFormatUtilsTest {
public static void main(String[] args) throws ParseException {
Date date=new Date();
System.out.println(DateFormatUtils.DateToString(date, "yyyy-MM-dd"));
String s="2011年10月10日";
System.out.println(DateFormatUtils.StringToDate(s, "yyyy年MM月dd日"));
}
}
// Calendar 对象,其日历字段已由当前日期和时间初始化
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
System.out.println(year);
//获取月份
System.out.println(c.get(Calendar.MONTH));
//获取天
System.out.println(c.get(Calendar.DATE));
//获取小时
System.out.println(c.get(Calendar.HOUR));
//获取分钟
System.out.println(c.get(Calendar.MINUTE));
// 1.从键盘输入一个年份
Scanner sc = new Scanner(System.in);
System.out.println("请输入年份");
int year = sc.nextInt();
// 2.创建一个Calendar对象,将其YEAR字段值设置为year,将MONTH设置为
Calendar c = Calendar.getInstance();
c.set(year, 2, 1); //设置为3月1日
//3.将c的Date字段值-1
c.add(Calendar.DATE, -1);
System.out.println(c.get(Calendar.DATE));