- String格式化
- String(继上篇)
- StringBuffer类
- StringBuilder类
- String,StringBuffer,StringBuilder的异同
- Math类
String格式化
%s,%d,%f,%c,称为占位符
- %s表示字符串来替换
- %d表示整数来替换
- %f表示浮点数来替换,%.2f表示保留两位小数,%.3为三位
- %c表示使用char类型来替换
uifa为
格式如下:
String name="韩顺平";
int age=35;
float shengao=175.55532f;
char gender='男';
String str1=String.format("老韩姓名为%s,年龄为%d,身高为%.3f,性别为%c",name,age,shengao,gender);
System.out.println(str1);
float floatVar=12.3f;
int intVar=12;
String stringVar="sad";
System.out.printf("浮点型变量的值为 " +
"%f, 整型变量的值为 " +
" %d, 字符串变量的值为 " +
"is %s", floatVar, intVar, stringVar);
String(继上篇)
StringBuffer类
与String的区别是:
- String类保存的是字符串常量,里面的值不能更改,每次String类的更改实际就是更改地址。(继承下来的value是final)
- StringBuffer类保存的是字符串变量,里面的值可以更改,(继承下来的value不是final),
//String转StringBuffer
StringBuffer stringbuffer = new StringBuffer();
stringbuffer=stringbuffer.append(s);
//StringBuffer转String
String str=stringbuffer.toString();
StringBuffer类有数据结构的那些方法(因为他是可以修改的,这些方法就是用来修改对象)
如append,delete等
stringbuffer.append("教育");//增
stringbuffer.delete(3,5);//删
stringbuffer.replace(0,3,"黑马吗");//改
stringbuffer.indexOf("韩顺平");//查
stringbuffer.LastindexOf(".");//查最后一次出现的位置,返回int类型
stringbuffer.insert(3,"哈哈");//插入
StringBuilder类
与StringBuffer的区别是:该类线程不安全,而StringBuffer是线程安全的,所以在多线程中用StringBuffer
其余拥有的方法,构造定义时和StringBuffer一样。
String,StringBuffer,StringBuilder的异同
-
StringBuffer,StringBuilder非常类似,都表示可变的字符序列,方法也一样
-
StringBuilder是线程不安全的,效率最高
-
但StringBuffer是线程安全的,效率较高
-
String是不可变的,效率最低,但复用率高
-
若字符串存在大量修改,用StringBuffer(多线程时)或StringBuilder(单线程时)
-
若字符串很少修改,被多个对象引用,用String,如配置信息,类似数据库账号密码等
Math类
Math类中封装了一些数学方法,
Math类都是static的,所以不用创建对象,直接使用,Math中常见的有abs,绝对值,pow,求幂,ceil,向上取整,floor向下取整,round四舍五入,sqrt求开方,
random求随机数,返回零到一,左闭右开
int abs = Math.abs(-153);
System.out.println(abs);
double pow = Math.pow(2.5, 3);
System.out.println(pow);
double random = Math.random();
System.out.print