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)
正确的字符串格式规则
一般用来判断用户输入是否符合格式要求
正则表达式是独立语法
| 正则表达式 | 匹配的字符串 |
| 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, 正则表达式的更多相关文章
- java中String StringBuilder StringBuffer比较和效率(性能)测试
string stringbuilder stringbuffer三者的区别 从JDK源码看,String.StringBuilder.StringBuffer都是存放在char[] 数组字符串. 简 ...
- difference among String,StringBuilder,StringBuffer
difference among String,StringBuilder,StringBuffer String常用构造函数 String(byte[] bytes) String(byte[] b ...
- JDK源码分析系列---String,StringBuilder,StringBuffer
JDK源码分析系列---String,StringBuilder,StringBuffer 1.String public final class String implements java.io. ...
- 深入源码剖析String,StringBuilder,StringBuffer
[String,StringBuffer,StringBulider] 深入源码剖析String,StringBuilder,StringBuffer [作者:高瑞林] [博客地址]http://ww ...
- String, StringBuilder, StringBuffer问题
1. 区别 String为字符串常量,而StringBuilder和StringBuffer都是字符串变量,其中StringBuilder线程非安全,StringBuffer线程安全. 每次对 Str ...
- String StringBuilder StringBuffer区别
String StringBuilder StringBuffer String类是final类,不可以被继承,且它的成员方法也是final方法,当一个字符串对象进行操作操作时,任何的改变不会影响到这 ...
- Java 中 常用API概述之 Math, Object, String,StringBuffer类,Arrays,Integer类
Math Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数. 与StrictMath类的一些数字方法不同,Math类的StrictMath所有Math都没有定义为返回比特位相同 ...
- Java基础知识总结--String、StringBuffer、StringBuilder
1.Java String 类 String类是final类,也即意味着String类不能被继承,并且它的成员方法都默认为final方法.在Java中,被final修饰的类是不允许被继承的,并且该类中 ...
- java学习(四)--- String 、StringBuffer、StringBuilder 和 数组
对于 String.StringBuffer.StringBuilder比较一下 主要说说三者的不同 String 长度大小不可变 StringBuffer 和 StringBuilder 长度可变 ...
随机推荐
- Linux下批量解压.Z格式文件
下面的代码演示如何将当前目录下sj目录下的所有.Z格式文件解压到sj_result目录下. 代码示例: for file in `ls ./sj` do prefix=${file%.*} echo ...
- Win10使用Tex Live和VS Code和Latex Workshop插件编写Latex文档(未完成版本)
首先取Tex Live官网下载安装包:https://www.tug.org/texlive/acquire-netinstall.html 我下载的是 http://mirror.ctan.org/ ...
- 连载三:RobotFramework+Selenium+Jenkins分布式构建
目标:Jenkins安装在服务器上,而使用Jenkins调用本机的脚本并在本机执行. 步骤: (1)需要有RobotFrameWork+Selenium的运行环境: python2.7,Robotfr ...
- jira邮箱配置
系统-邮件-外发邮件
- iText输出中文
使用iTextAsian.jar中的字体 BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont ...
- windows使用sqlpus连接oracle 数据库
1.先安装好Instant Client程序. 2.打开cmd 执行sqlplus命令,如果出现如下图 2.说明需要把oracle install 的bin目类 添加系统环境path中,如下图添加环境 ...
- S03_CH12_基于UDP的QSPI Flash bin文件网络烧写
S03_CH12_基于UDP的QSPI Flash bin文件网络烧写 12.1概述 为了满足不同的需求,本例程在"基于TCP的QSPI Flash bin文件网络烧写"上进行修改 ...
- 06 ServletConfig、ServletContext_作用域对象
ServletConfig:表示servlet的配置信息,一个servlet对象对应一个servletconfig对象 方法: 1.获取初始化参数 config.getInitParameter( ...
- gmpy安装使用方法
gmpy是一种C编码的Python扩展模块,提供对GMP(或MPIR)多精度算术库的访问.gmpy 1.17是1.x系列的最终版本,没有进一步的更新计划.所有进一步的开发都在2.x系列(也称为gmpy ...
- 【转载】使用appium遇到的坑
问题 1. error: Failed to start an Appium session, err was: Error: Requested a new session but one was ...