String中==与equals的区别:
==比较字符串中的引用相等
equals比较字符串中的内容相等(因为字符串有重写equals方法)

string常用的方法

返回类型

方法

操作功能

Char

charAt(int index)

返回字符串中指定索引处的字符

Int

indexOf(char ch)

返回指定字符在字符串中第一次出现的索引

Int

lastIndexOf(char ch)

返回指定字符在字符串中最后出现的索引

string

Substring(int beginIndex,int endIndex)

从字符串的开始beginIndex到结束endIndex处返回一个新的字符串

string

Concat(string str)

将指定字符串连接到字符串的末尾

string

Replace(char old,char new)

用新的字符替代旧的字符

String[]

Split(string str)

根据字符串来拆分字符串

string

Trim()

清除结尾后面的空格

Int

compareTo(string str)

比较,按字母顺序进行排序,如果两个字符相等返回0

                

StringBuffer常用的方法

返回类型

方法

备注

stringBuffer

Insert()

在指定位置添加字符串

Int

Length()

长度

Void

setCharAt(int pos,char ch)

使用新的字符ch设置到指定的位置上

String

toString()

转换成字符串

StringBuffer

Reverse()

反序

StringBuffer

Delete(int start,int end)

删除指定位置上字符串

stringBuffer

deleteCharAt(int pos)

删除从指定的位置到末尾的字符

StringBuffer

Replace(int start,int end,string str)

使用一组字符串替换另一组字符串

例子:

/************ String中的equals与== *****************/
 /*
  * ==比较字符串中的引用相等
  * equals比较字符串中的内容相等(因为字符串有重写equals方法)
  */
// public static void main(String[] args) {
//  String s1 = new String("abc");
//  String s2 = new String("abc");
//  System.out.println(s1.equals(s2));// true
//  System.out.println(s1 == s2);// false
//
//  String s3 = new String("aaaa");
//  String s4 = s3;// s3把引用赋值给s4
//  System.out.println(s3.equals(s4));// true
//  System.out.println(s3 == s4);// true
// }

String与StringBuffer的不同点: 1、String类是不可改变的,而StringBuffer类是可变的 可修改的

2、String类覆盖了Object的equals方法,而StringBuffer没有

3、String类可以使用”+”进行连接,    而StringBuffer对象之间不能通过”+”进行连接使用append方法进行连接

例子

/**************StringBuffer的使用*****************/
// public static void main(String[] args) {
//  //String不可以修改字符串
//  String str = "abc";//创建一个字符串对象
//  str = "aaa";//创建一个新的字符串
//  str = str+"www";//还是创建了一个新的字符串
//  
//  //StringBuffer可修改字符串
//  StringBuffer buffer = new StringBuffer();
//  System.out.println("大小:"+buffer.length());
//  System.out.println("容量:"+buffer.capacity());
//  buffer.append("abc");//追加字符串
//  System.out.println("大小:"+buffer.length());
//  System.out.println("容量:"+buffer.capacity());
//  buffer.append("ddd");
//  System.out.println("容量:"+buffer.capacity());
//  buffer.append("wwwwwwwwwwwwwww");
//  System.out.println("容量:"+buffer.capacity());
// 
//  StringBuffer strBuffer1 = new StringBuffer("www");
//  StringBuffer strBuffer2 = new StringBuffer("www");
//  //StringBuffer没有重写equals方法所以比较的是引用是否相等
//  System.out.println(strBuffer1.equals(strBuffer2));
// }

StringBuilder类与StringBuffer类:
StringBuilder也是一个操作字符串的类,它与StringBuffer的功能是一样的,
主要区别在于,StringBuilder是非线程安全的,StringBuffer是
线程安全的,所以StringBuilder效率要高,在使用过程中,要根据具体的
情况考虑,如果环境对线程安全没要求,就可以使用StringBuilder

字符串的使用(string,StringBuffer,StringBuilder)的更多相关文章

  1. 浅谈 Java 字符串(String, StringBuffer, StringBuilder)

    我们先要记住三者的特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看 API 会发现,String ...

  2. java中 String StringBuffer StringBuilder的区别

    * String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...

  3. String,StringBuffer,StringBuilder的区别

    public static void main(String[] args) { String str = new String("hello...."); StringBuffe ...

  4. 关于String StringBuffer StringBuilder

    0. String对象的创建       1.关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外:String s=new String("Hello world&qu ...

  5. [置顶] String StringBuffer StringBuilder的区别剖析

    这是一道很常见的面试题目,至少我遇到过String/StringBuffer/StringBuilder的区别:String是不可变的对象(final)类型,每一次对String对象的更改均是生成一个 ...

  6. Java学习笔记--String StringBuffer StringBuilder

    String StringBuffer StringBuilder String http://docs.oracle.com/javase/7/docs/api/ 中文: http://www.cn ...

  7. String StringBuffer StringBuilder (转)

    转自:http://www.iteye.com/topic/522167 众所周知,String是由字符组成的串,在程序中使用频率很高.Java中的String是一个类,而并非基本数据类型. 不过她却 ...

  8. 【Java基础】String StringBuffer StringBuilder

    String String是不可变的 我们都知道String不是基本数据类型,而是一个对象,并且是final类型的,不可变的.(public final class String) 查看以下代码: S ...

  9. String,StringBuffer,StringBuilder的区别及其源码分析

    String,StringBuffer,StringBuilder的区别这个问题几乎是面试必问的题,这里做了一些总结: 1.先来分析一下这三个类之间的关系 乍一看它们都是用于处理字符串的java类,而 ...

随机推荐

  1. paip.将数据导入到在英语语音数据库mysql道路解决空原则问题

    paip.将数据导入到在英语语音数据库mysql道路解决空原则问题 #---原因:mysql 导入工具bug #---解决:不要使用双引号括注音. 笔者 老哇爪 Attilax 艾龙.  EMAIL: ...

  2. Is it always safe to call getClass() within the subclass constructor?(转)

    14down votefavorite   An article on classloading states that the method getClass() should not be cal ...

  3. 集成 NHibernate

    ABP 基础设施层——集成 NHibernate 本文翻译自ABP的官方教程<NHibernate Integration>,地址为:http://aspnetboilerplate.co ...

  4. SharePoint 2010 升级到2013时间 为了确保用户可以连接,但无法改变升级数据

    SharePoint 2010 升级到2013时间 为了确保用户可以连接,但无法改变升级数据 我总结的步骤 红色请注意它们的含义. 步骤1:连接到SQL DBS 上的SharePoint 2010数据 ...

  5. java 科学计算库

    stackoverflow 上的讨论, 其中不乏lib的作者... http://stackoverflow.com/questions/529457/performance-of-java-matr ...

  6. oracle 数据库安装环境,需要大汇总

     Oracle Database (RDBMS) on Unix AIX,HP-UX,Linux,Mac OS X,Solaris,Tru64 Unix Operating Systems Ins ...

  7. js中位运算的运用

    原文:js中位运算的运用 我们可能很少在编程中用位运算,如果没深入学习,可能也很难理解.平时的数值运算,其实是要先转换成二进制再进行运算的,而位运算就是直接进行二进制运算,所以位运算的执行效率肯定是更 ...

  8. TCO14 2C L2: CliqueGraph,graph theory, clique

    称号:http://community.topcoder.com/stat?c=problem_statement&pm=13251&rd=16017 參考:http://apps.t ...

  9. hdu More is better

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1856 题意:王老师要找一些男生帮助他完成一项工程.要求最后挑选出的男生之间都是朋友关系,可以说直接的, ...

  10. ToDictionary() and ToList()

    ToDictionary() and ToList() 前言: 有两个简单好用的LINQ扩展方法 ToDictionary() 和ToList(),你可能知道或不知道,但是它的的确确可以简化查询转化为 ...