Java String类

声明字符串

//创建字符
char ch = 'A';

//创建字符串
String a;
String b,c,d;
//空对象 相当于 String a = null;

给字符串赋值

1、引用字符串常量
String a = "时间是金钱,我的朋友";
String a="锄禾日当午",b="小鸡炖蘑菇";

2、利用构造方法直接实例化
String a = new String("我在庆阳飞扬");
String b = new String(a);

3、利用字符数组实例化
char[] charArray = {'t','i','m','e'};
String a = new String(charArray);
String b = new String(charArray,0,4);
//第二位为起始位置,第三位为长度

4、利用字节数组实例化
byte[] byteArray = {-60,-6,-70,-61};
String a = new String(byteArray);


连接字符串

String a = "123"+"456";

String a = "123";
a += "456";

获取字符串长度

String a = "1234567";
int size = a.length();

字符串查找

//返回搜索字符串或字符串首次出现的位置 无 返回-1  有则返回起始位置int
str.indexOf("abc");
//返回搜索字符串或字符最后一次出现的位置 无 返回-1  
str.lastIndexOf("abc");

//如果lastIndexOf的参数是空字符串 则返回查询字符串的长度

日期格式化

Date date= new Date();

String year = String.fomate("%tY",date);
String month = String.fomate("%tB",date);
String day = String.fomate("%td",date);

String hour = String.fomate("%tH",date);
String minute = String.fomate("%tM",date);
String second = String.fomate("%tS",date);

常规格式化:

%c  char
%d  int 
%b  boolean
%s  string
%%  %
%e  科学计数法

正则表达式

//邮箱

String regex = "\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}";

String a1 = "1111";
String a2 = "@163.com";
String a3 = "rich@163.vip.com";
String a4 = "outman@163.com";

System.out.println(a1.matches(regex));

//手机
String regex = "1[345789]\\d{9}";
String a1 = "13454545454";
boolean b = a1.matches(regex);

StringBuffer类  字符串中的战斗机

线程安全的可变字符序列,String字符串对象是不可修改的

StringBuffer sbf = new StringBuffer();
StringBuffer sbf = new StringBuffer("abc");
StringBuffer sbf = new StringBuffer(32);//创建的厨师容量为32个字符

//常用方法
public StringBuffer append(Object obj);

StringBuffer sbf = new StringBuffer("门前大桥下");
StringBuffer tmp = new StringBuffer("快来快来数一数");
sbf.append(tmp);

int x = 24678;

sbf.append(x);

//修改指定索引的值
public void setCharAt(int index,char ch);

StringBuffer sbf = new StringBuffer("0123456");
sbf.setCharAt(3,'A');

//插入字符串
public StringBuffer insert(int offset,String str);

StringBuffer sbf = new StringBuffer("0123456");
sbf = sbf.insert(5,"F");

//字符串反序
StringBuffer sbf = new StringBuffer("The beautiful flower");
sbf = sbf.reverse();

//删除子字符串
StringBuffer sbf = new StringBuffer("The beautiful flower");
sbf = sbf.delete(4,7);

//与String类似的方法
.length()
.charAt(5);
.indexOf("DEF");
.substring(0,2);
replace(2,5,"12345");//2~5替换为 12345

StringBuilder类

与StringBuffer常用方法相同,是线程不安全的。效率更高

StringBuffer StringBuilder String之间的关系

String只能赋值一次,每次改变内容都会生成一个新的对象,性能低  字符串常量 线程不安全

StringBuffer 每次操作都是对自身对象做操作,字符串变量  效率中  线程安全

StringBuilder   字符串变量,线程不安全 效率高

操作少 数据少 String
单线程 操作多 数据多 StringBuilder
多线程 操作多 数据多 StringBuffer

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值