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 长度可变 ...
随机推荐
- Golang 开发框架 gin 项目时笔记
1.模板引入时报错: func main() { router := gin.Default() router.LoadHTMLGlob("templates/**/*") rou ...
- sqlserver 数据库操作导出数据sql工具
软件名称sqldbx 下载URL https://download.csdn.net/download/yanghl1998/7832861 Navicat Premium 这个工具任何类型数据库 ...
- Dapper操作Sql Server和MySql数据库
1. 在配置文件web.config中添加连接字符串 <connectionStrings> <add name="sqlconnectionString" co ...
- [转载]Oracle中TO_NUMBER()函数的用法
1 用法简介TO_NUMBER函数()是Oracle中常用的类型转换函数之一,主要是将字符串转换为数值型的格式,与TO_CHAR()函数的作用正好相反. To_number函数的格式如下: To_nu ...
- 用户字符串操作,这里面包括字符串的decode、encode、substract等等操作
工具类描述:用户字符串操作,这里面包括字符串的decode.encode.substract等等操作 package cn.hgnulb; import java.io.UnsupportedEnco ...
- SQL常用语句简单
数据库脚本 USE [Test] GO /****** Object: Table [dbo].[Class] Script Date: 2017/6/29 13:17:14 ******/ SET ...
- Fiddler之手机抓包
1.Fiddle设置端口,Tools->Options->Connections, 2.手机设置代理服务器: 注意:要保证手机和PC电脑IP在同一个网段(或者同一个网关) (1).安卓手机 ...
- Linux/ubuntu 心得
基本命令 有n个软件未被升级(有强迫症的,不爽的 apt-get dist-upgrade 更改主机名字 git 不要免密输入的话,可在当前工作目录执行 git config credential.h ...
- spring cloud微服务实践四
spring cloud的hystrix还有一个配搭的库hystrix-dashboard,它是hystrix的一款监控工具,能直观的显示hystrix响应信息,请求成功率等.但是hystrix-da ...
- ftp-server(对象存储)
1.背景 在腾讯云弄了一个对象存储,想通过ftp上传照片 说明连接: 腾讯云:https://cloud.tencent.com/document/product/436/7214 GitHub:ht ...