API(二)

正则表达式: 字符串的一些排列规则 -> String
格式的校验: 邮箱格式/身份证格式/电话号码格式
长短的判断: 至少多少个字符, 最长多少个字符
内容的限定: 只能有字母\数字\下划线

开始符号: ^
结束符号: $

  常用标识
    []: 一个字符的位置
        例如: [abc] -> 这个字符的位置内容只能是a或者b或者c
              [a-z] -> 这个字符的位置内容可以是所有的小写字母
              [0-9] [A-Z] [a-zA-Z0-9_]
    数量词:
       +: 出现一次或多次
       ?: 一次或者0次
       *: 0次或者多次
       {n}: 刚好n次
       {n,m}: n~m次
       {n,}: 至少n次
         例如: a+ -> "aa" "aaa" "b"(×)
              [a-z]{3} -> "ef"(×)  "abc"  "ztf"
              [a-z0-9]{4,} -> "1234" "1a4f"
              [a-zA-Z][a-zA-Z0-9_]{5,17} -> 简化: [a-zA-Z]\w{5,17}
    特殊例如:
      ^abc$ -> "abc"
      ^(SB|QNMLGB|nf)$ -> "abc" "bcd"
    预定义字符类:
      . : 所有字符
      \d : 数字 [0-9]
      \s : 空白字符:[ \t\n\x0B\f\r]
      \w : 单词字符:[a-zA-Z_0-9]
      \D : 非数字 [^0-9]
    转义: 有特殊意义的字符
          .  \  + ? * -
         表示字符本身, 需要 \字符
         \. \\  \+ \? \* \-

    例子: 163邮箱地址正则表达式: ^[a-zA-Z]\w{5,17}@163\.com$
         [a-zA-Z0-9_.-]: []中出现的特殊字符, 不需要转移, 就代表字符本身
  相关的的API:
    1.boolean matches(String regex)
    2.String replaceAll(String regex, String newStr)
    3.String[] split(String regex)

String 是不可变的, 所以频繁的字符串拼接非常消耗时间/内存
解决方案: 提供了新的类, 可变字符串 StringBuffer StringBuilder
StringBuffer : 线程安全的
StringBuilder: 效率高
构造方法:
StringBuilder sb = new StringBuilder() -> “”
String str = sb.toString()
StringBuilder sb = new StringBuilder(String)
常用API: - 返回值都是this, 在对象本身进行修改
append(Object o) -> 在字符串末尾追加新的内容
delete(int start, int end)
replace(int start, int end, String replacement)
insert(int index, String str)
reverse()

包装类: 将基本数据类型做了封装,
每一种基本数据类型都对应一种包装类型
一切皆对象 - 引用, 基本数据类型不属于对象
byte -> Byte
short -> Short
int -> Integer
long -> Long
double -> Double
float -> Float
char -> Character
boolean -> Boolean

Integer.parseInt("12a"); ->> NumberFormatException
Integer.toBinaryString() -> 将整数转换成二进制的字符串形式
Integer.parseInt("12a", 16) -> 将字符串以16进制方式转换成数字

// 1.1 int -> Integer 隐藏了自动装箱的操作
i1 = i; // 等同于: i1 = Integer.valueOf(i);
// 1.2 Integer -> int 隐藏了自动拆箱的操作
i = i1; // 等同于: i = i1.intValue();

所有的数值的包装类都拥有统一的父类: Number
所有的包装类, 都是 final 类

Integer: 常量池, 范围 -128 ~ 127

集合: java.util.Collection Map -> 接口
Collection coll = new ArrayList()
添加\移除\清空\判断是否为空\判断是否包含\长度
注意: 没有单独获得某个元素的方法, 只能迭代/遍历
Iterable -> 可迭代的, iterator() -> 获得迭代器

 迭代器: 获得迭代器时, 游标指向集合中第一个元素之前

 c1.addAll(Collection c2): 将c2中所有的元素加到c1中
 c1.containsAll(Collection c2): 问c1中是否包含c2中的所有元素
 c1.retainAll(Collection c2): 将c1中元素仅保留c2中出现的元素
 c1.removeAll(Collection c2): 将c2中出现过的元素从c1里面移除掉
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值