Java高级API-实用类介绍(二)

实用类介绍(二)

一、Random类

生成随机数的方式:

Random r=new Random();//创建一个Random对象
System.out.println(r.nextInt());//范围在全int的范围
System.out.println(r.nextInt(100));//范围在0~100
Random ran=new Random(2);//伪随机,当种子值固定时,就没办法随机
System.out.println(ran.nextInt(100));

二、String类

String类本身用final修饰,不能被继承,如果方法上用final修饰,不能被重写。

String s="abc";//String类型底层存储时char类型的数组
String a=new String("abc");//很少用
char[] c={'a','b','c'};
String s1=new String(c);
System.out.println(s1.length());//确定字符串的长度
System.out.println(s.equals(s1));//用equals比较
String s2=String.valueOf(c);//valueOf常用于接收数组
char[] chars=s2.toCharArray();//将字符串转换为字符数组
String test="  abc,  123 , hello ,nihao ";
System.out.println(test.trim());//左右去空格
String[] strs=test.split(",");//可以匹配正则表达式
System.out.println(Arrays.toString(strs));//这种切分会切成String数组
byte[] bytes=test.getBytes();//可以获取ascii码值
String abc=new String(bytes);
System.out.println(abc.startsWith(",  ", 5));//用于检测字符串是否以指定的前缀开始
System.out.println(abc.charAt(15));//用于返回指定索引处的字符,索引范围为从 0 到 length() - 1
System.out.println(abc.indexOf(","));//搜索第一个出现的字符
System.out.println(abc.substring(5, 10));//左闭右开
System.out.println(abc.contains("123 "));//是否包含
abc.compareTo("  abc,");//这里的比较规则,会先按位比较,其次就按长度比较
String aaa = abc.concat("aaa");//拼接字符串,等同于+拼接
String s3= aaa.replace('a','m');//替换字母
System.out.println(s3.toUpperCase());//小写字母转大写字母

三、StringBuffer类

//StringBuffer是线程安全的类型,StringBuilder是单线程类型
StringBuffer sb=new StringBuffer();
sb.append("abc,");
sb.append(123);
char[] c={',','h','e','l','l','o',','};
sb.append(c);
sb.append(12.5f);
System.out.println(sb);
String s=sb.toString();//StringBuffer转成String
StringBuffer ss=new StringBuffer(s);//使用构造方法将String转换成StringBuffer
StringBuffer replace = ss.replace(1, 10, "kb11 nb");
System.out.println(replace);

四、String类和StringBuffer类异同点

1.String
1)底层是一个不可变的char数组常量
2)变更时会先新建String对象,再新建char[],再重新赋值
2.StringBuffer
1)底层是可变的char数组变量
2)如果在长度以内,变更时不会再次新建StringBuffer对象和char[]对象
3)如果超出长度,变更时也不会新建StringBuffer对象,只是新建char[]对象
4)对性能消耗非常小

String安全性最高,性能最低
StringBuilder的安全性最低,性能最高
StringBuffer折中,在实际工作当中,只要可能涉及多线程,就会使用StringBuffer

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值