javaDay11_string,stringbuilder ,stringbuffer

String的常用方法

  1. 构造方法:

String s2=new String("123");//定义带值的string

String s3=new String();//定义一个空的string

Char 2个

char[] cs ={'你','好','坏','啊'};

String s4=new String(cs);//将一个char[] 变为一个字符串

//从char[]中获取一段构成字符串  参数:char[]名,char[]截取点的起点下标 ,char[]截取点的结束下标 

String s5=new String(cs, 1, 2);

Byte 2个

byte[] bs ={97,98,99,100,101};

String s6=new String(bs);//将byte[] 变为字符串

 String s7=new String(bs, 1, 3);//截取byte数组的一段构成字符串

  1. 获取长度方法:.length(); — 数字符串中有多少个字符

byte[] bs ={97,98,99,100,101};

String s6=new String(bs);//将byte[] 变为字符串

System.out.println(s6.length());

  1. 包含方法:

  1. 正向包含(从左向右匹配) .indexof:是将string中的字符串看作一个数组,依次对比,如果存储对应的值,则返回一个正数的下标,没有返回-1,只会返回满足的第一个下标

String s6="语 音邀 请我";

int i =s6.indexOf("语音");//默认返回匹配到的第一个

System.out.println(i);

int i =s6.indexOf("语音",2);//设置返回匹配到的第几个

  1. 逆向比较(从右往左) .lastindexof

       

       String s6="语音语音我";

int i =s6.lastIndexOf("语音");//默认返回匹配到的第一个

System.out.println(i);

int i =s6.lastIndexOf("语音",2); //设置返回匹配到的第几个

4.替换注意:需要另外声明一个string去接受返回的替换后的结果

    (1) replace(字符串原值,替换的新值):全部替换

String s6="语音语音我";

String s7=s6.replace("语音", "xx");

System.out.println(s7);

(2)replaceFirst(字符串原值,替换的新值):只替换第一个

5.拼接:concat(要拼接给字符出的值) ——类似 +

注意:需要另外声明一个string去接受返回的替换后的结果

String s6="语音语音我";

String s7=s6.concat("yyy");

System.out.println(s7);

6.大小写转换:将string中的值的英文大小写进行转换

  (1)toUpperCase:小写转大写

       String s ="hellow";

//toUpperCase:小写转为大写

    String s1 =s.toUpperCase();

  (2)toLowerCase:大写转小写

     String s2 =s1.toLowerCase();

注意:需要另外声明一个string去接受返回的替换后的结果

7.是否包含:contains(值);如果值被包含返回true,否则false

String s ="hellow java";

boolean b=s.contains("java");

System.out.println(b);

8.获取string中的某一个char .charAt(下标);

String s ="hellow java";

char c =s.charAt(1);

System.out.println(c);

9.将string变为byte数组 getbytes

      String s ="hellow java";

byte[] b=s.getBytes();

   for (byte c : b) {

System.out.println(c);

   }

10.字符串截取 subString 截取字符串中的某一段为一个新的字符串

  (1)substring(下标);从当前下标开始往后截取

    String s ="hellowjava";

String s1 =s.substring(6);//从当前下标开始往后截取

System.out.println(s1);

   

   (2)substring(下标1, 下标2);从第一下标开始到第二个下标之前截取

  String s ="hellowjava";

String s1 =s.substring(2, 6);//从第一下标开始到第二个下标之前截取

System.out.println(s1);

11.分割字符串 split(作为拆分条件的值);将字符串按照分割条件进行拆分,注意:1.拆分出的一定是string[] 2.拆分的条件会被去除

       String s ="hel%low%java";

String[] ss=s.split("%");

for (String string : ss) {

System.out.println(string);

}

12.类型转化 valueof,可以将string转为其他引用类型,也可以将其他引用类型转换位string  ——valueof方法引用类型之间的强制转换

每种引用类型都有valueof

  1. string. valueof 可以将其他类型转为string字符串

String s2 =String.valueOf(true);

String s3 =String.valueOf(0.1);

String s4 =String.valueOf(1);

String s5 =String.valueOf('A');

byte b=101;

String s6 =String.valueOf(b);

char[] c ={'A','b'};

String s7 =String.valueOf(c);

  1. 除去string与Character的引用类型中.valueof
  1. 可将string类型值变为当前的类型,同时parse..类似于valueof作用
  2. 将同类的基本类型变为引用类型

Integer in =Integer.valueOf(s);

Integer in1=Integer.valueOf(1);

Integer in2=Integer.parseInt(s);

System.out.println((in+1)+" "+ (in2+1));

Long l =Long.valueOf(s);

Long l2 =Long.parseLong(s);

//string 转double

Double db =Double.valueOf(s);

Double db2 =Double.parseDouble(s);

System.out.println(db+" "+ db2);

//string 转Float

Float fl =Float.valueOf(s);

Float fl2 =Float.parseFloat(s);

 3.Character 中valueof只可以将char基本类型转为引用类型

       Character c =Character.valueOf('c');

13: 比较大小 A.compareTo(B);再任何引用类型中,比较同类型的值的大小,返回正数前值大,返回负数前值小

14:比值相同:A.equals(B); 再任何引用类型中,比较AB两个对象的是否相同

   Integer i=1010;

   Integer i2=1010;

   

   int xi=1010;

   int xi2=1010;

   System.out.println(i.equals(i2));

System.out.println(i==i2);

System.out.println(xi==xi2);

StringBuffer/builder常用方法:

     StringBuffer sb =new StringBuffer("123");

     sb.append("456");//类似与string concat 拼接

  sb.append("789");

  

  sb.delete(2, 4);//删除StringBuffer中的从下标2到下标4之前的值

  sb.deleteCharAt(2);//删除某个下标的值

  

  sb.setCharAt(2, 'A');//修改对应下标的值

  

  String s =sb.toString();//将StringBuffer转为string

String,StringBuffer,StringBuilder之间的区别

  1. String存储的值不可更改,因为string中char[]是最终修饰的 StringBufferStringBuilder中的char[] 不是最终的——大量拼接字符串,优先使用StringBuffer,用append方法拼接,因为String每次拼接一个字符串都需要创建一个新的string对象,会造成资源的大量消耗

   

 StringBuffer s =new StringBuffer("1111");

 long times =System.currentTimeMillis();

  for(int i =0;i<100000;i++){

  

  s.append("2");

  }

     long timee =System.currentTimeMillis();

     System.out.println(timee-times); //差值7

     

 String s ="1111";

 long times =System.currentTimeMillis();

  for(int i =0;i<100000;i++){

  

  s=s.concat("2");

  }

     long timee =System.currentTimeMillis();

     System.out.println(timee-times);//差3868

  1. StringBuffer是线程安全的,StringBuilder是线程不安全的
  2. StringBuffer ,StringBuilder 都无法直接=赋值,必须使用构造函数赋值

练习:

聊天室

  1. 创建用户类实体类:用户名,密码,真实姓名,身份证号
  2. 创建用户类
  1. 聊天:输入要说的,完毕后提示是否发送1.发 2.否

发送:先检索敏感词是否存在 如果存在改成xx【敏感词检索方法】,之后再输出打印:用户xxxx说:xxxx

可以返回 1上级/ 2继续

  1. 敏感词检索:将输入的话检索其中是否有违规词,有则替换位xx并 返回(return)

  1. 敏感词添加and修改方法:先展示(get)所有已经输入的敏感词,1.添加(add) 2.修改(set)3.删除(remove) 完成后保存【提示敏感词可以做成一个集合属性】

可以返回 1上级/ 2继续

  1.  注册方法:输入用户名,密码,真实姓名,身份证号

创建一个用户对象

  1. 个人信息查看方法

输出注册的用户,注意密码是*******位数根据输入密码长度决定(length方法)

可以返回 1上级/ 2继续

创建测试方法并按照下述运行

1.先随便插入一些敏感词

     2.提示欢迎注册开始注册

     3.注册完毕 输出 1.聊天  2 . 个人信息查看 3.敏感词修改/添加

  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这是程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值