String StringBuffer StringBuilder 基础
来源:互联网 发布:ipad和手机同时上淘宝 编辑:程序博客网 时间:2024/05/16 12:30
String 不可改变类,任何对String对象的改变只会生成新的String对象。
StringBuffer可变类,任何对它所指代的字符串的改变都不会产生新的对象。(线程安全)
StringBuilder可变类,JDK5.0 引入,任何对它所指代的字符串的改变都不会产生新的对象。(线程不安全)
String的常用方法
public class StringAPI {public static void main(String[] args) {// TODO Auto-generated method stubString s1 = "hello java!";// indexOf()方法;返回指定字符串或字符在字符串中第一次出现的索引int index = s1.indexOf('h');// result:0System.out.println(index);index = s1.indexOf("java");// result:6System.out.println(index);// charAt(); 将指定索引处的字符去除来;char c1=s1.charAt(6);//result:j System.out.println(c1); // substring()方法; 截取字符串的方法;// 指定一个索引值认为开始截取的位置(包含当前索引处字符)String sb1 = s1.substring(0);// reuslt:"hello java!"System.out.println(sb1);// 指定开始的索引值和结束的索引值(包含开始的字符不包含结束处的字符);String sb2 = s1.substring(6, 10);// 结果为"java"没有"!"号System.out.println(sb2);//split()方法; 以指定字符或字符串将一个字符串分割成字符串数组; String s2="aaa bbb ccc ddd fff"; String [] st=s2.split(" "); for(String s3:st){ System.out.println(s3); } //字符串的比较方法 String s4="aaa"; String s5="AAA"; //equals() 常规比较方法 System.out.println("aaa".equals(s4)); //equalsIgnoreCase() 不区分大小写的比较俩个字符 System.out.println("AAA".equalsIgnoreCase(s4)); //toLowerCase() 将字符串所有字母转换为小写; s5= s5.toLowerCase(); System.out.println("aaa".equals(s5)); // toUpperCase();将字符串所有字母转换为大写; s4 = s4.toUpperCase(); System.out.println("AAA".equals(s4)); //trim(); 去除字符串前后的空格 String s6=" aaa "; s6=s6.trim(); System.out.println("aaa".equals(s6)); //compareTo();比较字符串的先后顺序方法 根据每个字符的Unicode 逐一比较 String s7="abc"; String s8="def"; String s9="abc"; String s10="aab";System.out.println(s7.compareTo(s8));//结果小于0 说明前一个字符在后一个字符之前System.out.println(s7.compareTo(s9));//结果等于0 说明字符串相等System.out.println(s7.compareTo(s10));//结果大于0 说明前一个字符在后一个字符之后 // 扩展 StringBuffer类的 字符串反转 reverse(); String s11="abcdef"; StringBuffer s12=new StringBuffer(s11); s11= s12.reverse().toString(); System.out.println(s11);//result:"fedcba";}}
String与StringBuffer的效率
通过对相同字符串的操作时间的差别来检测两者的执行效率如下:
import java.security.Timestamp;public class StringBufferTest {public static void main(String[] args) {// TODO Auto-generated method stubString str = null;StringBuffer stb = new StringBuffer();long time = System.currentTimeMillis();for (int i = 1; i < 10000; i++) {str = i + "";}System.out.println(System.currentTimeMillis() - time);// result:37long time1 = System.currentTimeMillis();for (int j = 1; j < 10000; j++) {stb.append(j + "");}System.out.println(System.currentTimeMillis() - time1);// result:12// 显然StringBuffer比String的执行时间短,效率高很多}}
StringBuffer与StringBuilder的区别
两者的的继承的API 是没什么区别的,主要就是StringBuffer是线程安全的也就是说他的一些方法是定义为synchronized方法,而StringBuilder是线程不安全的也就是说不存在synchronized方法,因为不存在线程同步的一些定义所以执行效率上要比StringBuffer稍高些,在不存在线程的同步的单线程操作数据时多选用StringBuilder类。
0 0
- String StringBuffer StringBuilder 基础
- 【Java基础】String,StringBuffer, StringBuilder
- java基础<String-StringBuffer-StringBuilder>
- Java基础 String StringBuffer StringBuilder
- 基础篇--StringBuffer、StringBuilder、String
- 【Java基础】String StringBuffer StringBuilder
- java基础-String/StringBuffer/StringBuilder
- Java基础--String、stringbuffer、stringbuilder
- String StringBuffer StringBuilder的基础用法
- java基础02 String、StringBuffer和StringBuilder
- java基础笔记之String、StringBuffer、StringBuilder
- java基础类型String、StringBuffer、StringBuilder
- Java基础——String、StringBuffer、StringBuilder
- java基础 之 String类 StringBuffer StringBuilder
- Java基础之String,StringBuilder,StringBuffer
- Java基础回顾 : String、StringBuffer和StringBuilder
- Java基础:StringBuilder、StringBuffer和String
- java-基础-String、StringBuilder以及StringBuffer剖析
- android有关paint属性设置 .
- 离开你,我一样活的很好
- dll的def文件与__declspec(dllexport)导出函数方式比较
- 搜索引擎-倒排索引基础知识
- WebConfigurationManager 类
- String StringBuffer StringBuilder 基础
- VS2008远程调试方法
- 小程序
- HttpClient 4.01 使用总结
- Weka中Apriori算法实用与分析
- CodeMirror与jquery UI-Tabs混合使用 注意事项
- cocos2d-x for android:CCSprite 精灵动画(转)
- android之通过USB插拔流程来了解android UEvent
- 关于STL中map的一些用法