java - day009 - 基础API,object,String, StringBuilder/StringBuffer, 正则表达式

API

java.lang.object

object

所有类的顶层父类

一个类如果不继承其他类,默认继承object.

   toString() 获得一个对象的字符串表示 

   可以重写

   equals()

   当前对象与参数对象比较是否相等

   object 中默认实现是比较两个对象的内存地址.

   可以重写

 

java.lang.String

String 

   封装一个char[] 数组

   创建字符串对象

   char[] a = {'a', 'b','c'};

   String s = new String(a);

 

  简化上面的语法

  String s = "abc";

 

  字符串的常量池

  第一次用到一个字符串的字面值 "abc"

  在 '字符串常量池'中新建对象

  再次用到相同字面值时,访问'常量池'中已经存在的对象

 

  String s2 = new String("abc");

  // 这句代码创建了两个对象,第一个"abc"会在'常量池'中创建一个,new 

      也会在堆内存创建一个 s2 对象

 

 

   字符串长度不可变

   String s1 = "aaa";

   String s2 = "bbb";

   String s3 = "ccc";

   String  s4 = s1+s2+s3;

   字符串+链接会新建对象

   链接对此效率会低

   String s5 = "aaa"+"bbb"+"ccc";

   会进行编译器优化 String s5 = "aaabbbccc";

 

  字符串方法

 

  charAt(i); 获取指定位置的字符

 

  indexOf(子串); 查找子串的起始位置,

  String s1 = "abc abc";

  String s2 = "bc";

  s1.indexOf(s2) = 1;

 

  indexOf(子串,指定位置);从指定位置向后查找子串的起始位置

 

  lastIndexOf(子串);从后向前找

  

  查找位置找不到会返回 -1

 

  subString(start);截取从start 位置到末尾的子串

 

  subString(start,end);截取[start,end)

 

  trim();去除两端的空白字符,中间的不去除,返回一个新的字符串

 

  length();获取字符串长度

 

 

 

 

   

StringBuilder/StringBuffer

可变的字符序列,封装char[]

一般用来代替String ,做高效率的字符串链接

  append();

  用来做字符串内容的追加

  向内部数组放入新字符

  数组放满,会创建容量翻倍的新数组,内容拷贝

 

  String 和 StringBuilder 区别,不可变字符串和可变字符串的区别

 

  StringBuilder 和 StringBuffer 区别

  StringBuffer 是 旧版本的类,(jdk1.0),线程安全,效率低

  StringBuilder 是 jdk1.5才有的类, 线程不安全,效率高

  

 

正则表达式   Regex(Regular Expression)

   正确的字符串格式规则

   一般用来判断用户输入是否符合格式要求

   正则表达式是独立语法

 

正则表达式匹配的字符串
kk
abcabc
[abc]a,b,c, 只能匹配单个字符
[abc][123]a1,a2,a3,b1,b2,b3,c1,c2,c3
[a-z]匹配a~z
[a-zA-Z_0-9]a,A,8,_
[^a-zA-Z]排除a~z,A~Z,   7,%,$,_
[\u4e00-\u9fa5]匹配中文
\d数组
\D排除数字
\w单词字符[a-zA-Z_0-9]
\W排除单词字符
\s空白字符
\S排除空白字符
  .  (点)任意字符
[abc]??   0或者一个   a,b,不写  , c
[abc]?[123]a1,b2,c3,1,2,3
[abc]**   0到多个   ,a,  ,  abc,abbcc
[abc]++  1到多个, a,abc,abbcc
[abc]{3}指定三个, abc,aab,bbb
[abc]{3,5}3到5个  abc,abbc,abbbb
[abc]{3, }至少三个  abc,acccccccc
  |  
 (  ) \(   \)  括号转译

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  Java 字符串的正则表达式匹配方法

  matches(正则表达式) ; 返回 bool

 

  replaceAll(正则表达式,子串);如果符合正则表达式,就替换成子串

 

  split(正则表达式); 用匹配的分隔字符,拆分字符串

  String s = "sdfsdfds,fsf,fdfsdf,ffs";

  String[] StrArr = s.split(",");  ["ffsfsf","fdsff","dsfds"]

 

  注意:

         输入反斜杠  "\"  输入  "\\" 

 

  

 

 

BigDecimal/BigInteger

 

Date

 

SimpleDateFormat

 

转载于:https://www.cnblogs.com/dingzhijie/p/11094269.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值