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)

   正确的字符串格式规则

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

   正则表达式是独立语法

正则表达式 匹配的字符串
k k
abc abc
[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

java - day009 - 基础API,object,String, StringBuilder/StringBuffer, 正则表达式的更多相关文章

  1. java中String StringBuilder StringBuffer比较和效率(性能)测试

    string stringbuilder stringbuffer三者的区别 从JDK源码看,String.StringBuilder.StringBuffer都是存放在char[] 数组字符串. 简 ...

  2. difference among String,StringBuilder,StringBuffer

    difference among String,StringBuilder,StringBuffer String常用构造函数 String(byte[] bytes) String(byte[] b ...

  3. JDK源码分析系列---String,StringBuilder,StringBuffer

    JDK源码分析系列---String,StringBuilder,StringBuffer 1.String public final class String implements java.io. ...

  4. 深入源码剖析String,StringBuilder,StringBuffer

    [String,StringBuffer,StringBulider] 深入源码剖析String,StringBuilder,StringBuffer [作者:高瑞林] [博客地址]http://ww ...

  5. String, StringBuilder, StringBuffer问题

    1. 区别 String为字符串常量,而StringBuilder和StringBuffer都是字符串变量,其中StringBuilder线程非安全,StringBuffer线程安全. 每次对 Str ...

  6. String StringBuilder StringBuffer区别

    String StringBuilder StringBuffer String类是final类,不可以被继承,且它的成员方法也是final方法,当一个字符串对象进行操作操作时,任何的改变不会影响到这 ...

  7. Java 中 常用API概述之 Math, Object, String,StringBuffer类,Arrays,Integer类

    Math Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数. 与StrictMath类的一些数字方法不同,Math类的StrictMath所有Math都没有定义为返回比特位相同 ...

  8. Java基础知识总结--String、StringBuffer、StringBuilder

    1.Java String 类 String类是final类,也即意味着String类不能被继承,并且它的成员方法都默认为final方法.在Java中,被final修饰的类是不允许被继承的,并且该类中 ...

  9. java学习(四)--- String 、StringBuffer、StringBuilder 和 数组

    对于 String.StringBuffer.StringBuilder比较一下 主要说说三者的不同 String 长度大小不可变 StringBuffer 和 StringBuilder 长度可变 ...

随机推荐

  1. laravel5.2总结

    转自:http://www.cnblogs.com/redirect/p/6178001.html

  2. Egret入门学习日记 --- 第十九篇(书中 8.8~8.10 节 内容)

    第十九篇(书中 8.8~8.10 节 内容) 开始 8.8节. 重点: 1.类型推断. 2.类型强制转换,使其拥有代码提示功能. 3.除了TS自带的类型判断,Egret官方也提供了类型判断的方法. 操 ...

  3. MATLAB知识-解决因缺少libsvm 而运行出现Y must be a vector or a character array.

    matlab版本R2014b 最近运行一个使用svmtrain的程序,出现以下错误: 这是因为是在设定路径里面没有libsvm.辛亏有一位师姐的电脑里面有libsvm的包,我直接用了,这样就不需要下载 ...

  4. PC电脑端支付宝扫码付款出现编码错误提示原因

    给这家公司做各大场景的支付 涉及到微信内置H5支付 其他浏览器唤醒微信客户端支付 PC扫码支付 和支付宝相应的支付,但今天进行PC扫码支付时遇到一些编码问题,流程能走通. 调试错误,请回到请求来源地, ...

  5. sql语句中,取得schema中的所有表信息及表的定义结构

    postgressql下'検索スキーマの中で.全てテーブルselect tablename from pg_tables where schemaname='test' mysql下'検索スキーマの中 ...

  6. Java面试 - 什么是单例设计模式,为什么要使用单例设计模式,如何实现单例设计模式(饿汉式和懒汉式)?

    什么是单例设计模式? 单例设计模式就是一种控制实例化对象个数的设计模式. 为什么要使用单例设计模式? 使用单例设计模式可以节省内存空间,提高性能.因为很多情况下,有些类是不需要重复产生对象的. 如果重 ...

  7. Win7 JavaEE 安装

    新建四个目录 D:\ApacheServer\eclipse 存放eclipse D:\ApacheServer\jdk jdk安装目录 D:\ApacheServer\apache-tomcat 存 ...

  8. 【牛客网】Finding Hotel

    [牛客网]Finding Hotel 忘记K远点对的剪枝的我有点自闭 事实上我们只要先建一棵KD树出来,维护一下所在的矩形,和子树里的最小值 每次查询的时候如果最小值比查询的值要大的话就退出 当前的答 ...

  9. PHP和Memcached - Memcached的介绍及常用命令

    1.什么是Memcached 自由开源的,高性能,分布式内存对象缓存系统,分布式是基于客户的缓存系统,服务器之间是不相互通讯的. 2.Memcached的使用场景 储存session. 缓存数据. 解 ...

  10. Centos7.3安装nexus12.1

    nexus.12.1-01的安装             1.下载nexus             2.上传到服务器/root/             3.解压                 t ...