java 从零开始,学习笔记之基础入门<封装类>(十一)(二)
ut.println(j);
//6. charAt返回指定索引下标的值
char cc = str.charAt(3);
System.out.println(cc);
//7. format按照一个格式对字符串进行格式化
//8.getBytes 将字符串转换成一个byte型数组
byte[] b = str.getBytes();
//对字符串进行编码的转换主要是一个字符串如果出现了乱码
//假如:str出现了乱码
String newStr9 = new String(str.getBytes("iso-8859-1"),"utf-8");
//9. split 将一个字符串以一个字符串进行分割
String[] stres = str.split(" ");
System.out.println(stres[0]);
System.out.println(stres[1]);
}
}
StringBuffer:
package com.ibm.strings;
public class StringBufferDemo {
public static void main(String[] args) {
//创建一个StringBuffer对象,表示一个可变长的字符串.
StringBuffer sb = new StringBuffer();
//调用append方法将字符串添加到sb对象中去
sb.append("softomm");
sb.append(true);
sb.append("你");
sb.append("aaaaaaaaa");
//在你后面添加 “好” 变成
sb.insert(12, "好");
System.out.println(sb);
//reverse 字符串反转 ab->ba
sb.reverse();
System.out.println(sb);
//setCharAt 给指定的索引的位置设置对应的字符串
sb.setCharAt(1, 'b');
System.out.println(sb);
//setLength 给可变长的字符串设置长度
sb.setLength(2);
System.out.println(sb);
}}
StringBuilder StringBuffer String的比较
/*String StringBuffer StringBuilder
* 定长 变长 变长
* 线程安全 线程安全 线程不安全
* 效率低 效率中等 效率高
* 单线程 单线程 支持多线程
*
* */
执行效率问题:
package com.ibm.strings;
public class StringSpeed {
public static void main(String[] args) {
// String str="";
// //取到系统时间用毫秒表示返回1970-1-1 24点距离当前时间的毫秒数
// long start = System.currentTimeMillis();
// //对空的str字符串进行循环相加10000次操作
// for(int i=0;i<10000;i++){
// str = str+i;
// }
// //循环完成之后,再取得系统时间
// long end = System.currentTimeMillis();
// System.out.println(end-start);
// StringBuffer str = new StringBuffer();
// long start = System.currentTimeMillis();
// //对空的str字符串进行循环相加10000次操作
// for(int i=0;i<10000;i++){
// str.append(i);
// }
// //循环完成之后,再取得系统时间
// long end = System.currentTimeMillis();
// System.out.println(end-start);
StringBuilder str = new StringBuilder();
long start = System.currentTimeMillis();
//对空的str字符串进行循环相加10000次操作
for(int i=0;i<1000000;i++){
str.append(i);
}
//循环完成之后,再取得系统时间
long end = System.currentTimeMillis();
System.out.println(end-start);
// System.out.println(end);
}
}