Java_String_基础
0x01:在Java中,形如"9.732","A String","你好",这样的字符串,其实都是常量。
(1)String的构造函数
String()
String(String original)
String(char value[])
String(char value[], int offset, int count)
String(int[] codePoints, int offset, int count)//unicode编码
String(byte ascii[], int hibyte, int offset, int count)
String(byte ascii[], int hibyte)
String(byte bytes[], int offset, int length, String charsetName)
String(byte bytes[], int offset, int length, Charset charset)
String(byte bytes[], String charsetName)
String(byte bytes[], Charset charset)
String(byte bytes[], int offset, int length)
String(byte bytes[])
String(StringBuffer buffer)
String(StringBuilder builder)
String str1,str2;
str1="We are students";
str2="We are students";
此时str1与str2具有相同的字符串常量,因此具有相同的实体。
内存示意图0x02:Java常用的方法
(1)使用"+"运算符可实现连接多个字符串的功能,最终返回一个String对象
(2)当"+"连接其他的数据类型的时候,其他类型的数据会调用toString()方法将其转化成String类型后拼接
(3)通过String对象的length()方法可以获得str字符长度
(4)使用indexOf(str)与lastIndexOf(str)可以分别找出字符串在原字符串中的索引(第一个与最后一个,返回值小于0则不存在)
(5)charAt(index)获得指定位置的字符
(6)substring(beginIndex)与substring(beginIndex,endIndex)截取字符串
(7)trim()去除头部和尾部的空格
(8)replace(oldStr,newStr)替换字符串中的所有的指定字符串
(9)判断字符串的开始与结尾startsWith(str),endsWith(str)
(10)equals(str)与equalsIgnoreCase(str)判断两个字符串是否相等
(11)compareTo(str),按照字典顺序比较两个字符串,最终返回整数值
(12)toLowerCase()与toUpperCase()将字母大小写转换一下
(13)split(sign)与split(sign,limit)将字符串分割并返回拆分后的字符串数组
(14)String类的静态方法String.format(String format,Object ...args)与String.format(Local local,String format, Object ... args)// {local 代表着语言环境}
0x03:Java格式化字符串
Date date=new Date();
Sting s=String.format("%te",date);
日期格式化
Date date=new Date();
String str=String.format("%te",date);
转换符 | 说明 |
---|---|
%te | 一个月中的某一天(1-31) |
%tb | 指定环境的月份简称 |
%tB | 指定环境月份的全称 |
%ta | 指定环境星期的简称 |
%tA | 指定环境星期的全称 |
%tc | 全部日期和时间信息 |
%ty | 两位年份 |
%tY | 四位年份 |
%tm | 月份 |
%td | 一个月中的第几天(01-31) |
%tj | 一年中的第几天(001-366) |
时间格式化
转换符 | 说明 |
---|---|
%tH | 2位的24小时制小时(00-23) |
%tk | 24小时制时(0-23) |
%tI | 12小时制小时(01-12) |
%tl | 12小时制小时(1-12) |
%tp | 上午/下午(am/pm) |
%tM | 分钟(00-59) |
%tS | 秒(00-60) |
%tL | 毫秒(000-999) |
%tN | 微秒(000000000-999999999) |
%tz | 相对与GMT格式的数字偏移量(0800) |
%tZ | 时区缩写形式的字符串(CST) |
%ts | 1970到现在的秒数 |
%tQ | 1970到现在的毫秒数 |
时间日期组合
转换符 | 说明 |
---|---|
%tF | 年-月-日(4位年份) |
%tD | 月/日/年(2位年份) |
%tr | 时:分:秒(12小时制AM/PM) |
%tT | 时:分:秒(24小时制) |
%tR | 时:分(24小时制) |
常规格式化
转换符 | 说明 |
---|---|
%b,%B | boolean类型 |
%h,%H | 散列码 |
%s,%S | string |
%c,%C | char |
%d | 十进制数 |
%o | 八进制数 |
%x,%X | 十六进制数 |
%e | 十进制科学计数 |
%a | 十六进制浮点数 |
%n | 换行符 |
%% | % |
0x04:Java正则表达式
字符 | 意义 |
---|---|
. | 任意字符 |
\d | 0-9 |
\D | 非数字 |
\s | 空白符 \t,\n |
\S | 非空白符 |
\w | 可以用作标识符的字符($除外) |
\W | 不可用于标识符的字符 |
\p{Lower} | a-z |
\p{Upper} | A-Z |
\p{ASCII} | ascii字符 |
\p{Alpha} | 字母 |
\p{Digit} | 0-9 |
\p{Alnum} | 0-9与字母 |
\p{Punct} | 标点符号 |
\p{Graph} | Alnum+Punct |
\p{Print} | 可打印字符[\p{Graph}\x20] |
\p{Blank} | 空格和制表符 |
\p{Cntrl} | 控制字符 |
[^012] : 除012以外的字符
[a-c] :a,b,c任意一个
[a-zA-Z] :任意英文字母
[a-z&&[abc]] : a,b,c,交运算
[a-z&&[ ^abc]] : 除abc以外的小写字母,差运算
限定符 | 意义 |
---|---|
? | 0次或者1次 |
* | 0次或者多次 |
+ | 1次或者多次 |
{n} | 正好n次 |
{n,} | 至少n次 |
{n,m} | 出现n-m次 |
0x05:StringBuilder
(1)常用方法
append(content)//追加
insert(offset,arg)//指定位置添加
delete(start,end)//删除start->end的字符
toString()//转化为string