文章目录
String类
基本数据类型char只能表示单个字符,不能表示由多个字符连接而成的字符串,Java中将字符串作为对象来处理,可以通过java.lang包中的String类来创建字符串对象
声明字符串
Java中的字符串包含在一对双引号(" ")之内
变量声明:String str;
创建字符串
Java可以像创建类对象一样来new字符串对象,String类的常用构造方法如下:
- 用字符数组创建String对象
char a[] = {'g','o','o','d'};
String s = new String(char a[])
String s = new String(char a[],int offset, int length)
//截取字符数组的一部分创建字符串对象,offset为起始下标,length为截取长度
- 通过引用字符串常量创建字符串变量
String s1,s2;
s1 = "we are hero"
s2 = "we are hero"
此时s1、s2引用相同的字符串常量,具有相同的实体。
连接字符串
‘+’运算符可实现连接多个字符串的功能,连接多个字符串并返回一个String对象。
字符串也可以与其他基本数据类型连接,连接时会将这些数据直接转换为字符串,自动调用他们的toString()方法。
只要‘+’运算符的一个操作数是字符串,编译器就会将另一个操作数转为字符串形式
获取字符串信息
int size = str.length() //获取字符串对象的长度
字符串查找
str.indexOf(String s) //返回参数字符串s在str中首次出现的索引位置,没有则返回-1
str.lastIndexOf(String s) 返回参数字符串s在str中最后出现的索引位置,没有则返回-1
获取指定位置的字符
str.charAt(int index)
字符串操作
获取子串
str.substring(int beginIndex, int endIndex) //返回str从begin到end的子串,end省略表明截到结尾
去除空格
str.trim() //返回去除签到空格和尾部空格的子串副本
字符串替换
str.replace(char oldChar, char newChar) //返回将str中的指定字符或字符串替换为新的字符或字符串的副本
//注意只能字符换字符,字符串换字符串,不能字符换字符串
判断开始结尾
str.startsWith(String prefix) //判断str是否以prefix子串开头,返回true或false
str.endsWith(String suffix)
字符串判等
字符串对象判等不能简单的‘==’,因为比较运算符比较的是两个字符串的地址,而不是内容
str.equals(String otherstr) //当两个字符串具有相同的字符和长度,返回true
str.equalsIgnoreCase(String otherstr) // 相比于equals,比较时对大小写不敏感
字典顺序比较
str.compareTo(String otherstr) //两串相等返回0,str位于参数串前则返回负整数,否则返回正整数
字母大小写转换
str.toLowerCase() //将str全部转为小写字母并返回
str.toUpperCase() //将str全部转为大写字母并返回
字符串分割
str.split(String sign, [int limit]) //以sign为分割符分割字符串,limit为分割次数
格式化字符串
String的静态方法format()用于创建格式化的字符串,该方法有两种重载形式:
str.format(String format, Object···args) //返回一个格式化字符串
日期时间字符串格式化
日期格式化
Date date = new Date() 创建Date对象date
String s = String.format("%tY", date) 四位年份
String s = String.format("%ty", date) 二位年份
String s = String.format("%tm", date) 月份
String s = String.format("%tb", date) 指定语言环境的月份简称(Feb、二月)
String s = String.format("%tB", date) 指定语言环境的月份全称(February、二月)
String s = String.format("%tj", date) 一年中的第几天
String s = String.format("%ta", date) 星期几简称
String s = String.format("%tc", date) 全部日期时间信息
时间格式化
常规类型格式化
正则表达式
字符串生成器
创建好的字符串对象,其长度是固定的,内容无法被改变和编译,虽然‘+’可以达到附加新船的目的,但这样会产生一个新的String实例,占用新的内存空阿金,极大地增加了系统开销。
J2SE 5.0 新增了可变的字符序列String-Builder类,大大提高了频繁增加字符串的效率。
如果要频繁的附加字符串,建议使用StringBuilder。
该类的常用方法如下:
append(content) 向字符串生成器中追加内容,该方法可接受任意类型的数据
insert(int offset, content) 向指定位置插入数据,0<offset<=序列长度
delete(int start, int end) 移除生成器中的子串,[start, end)