字符串的使用(string,StringBuffer,StringBuilder)
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)的更多相关文章
- 浅谈 Java 字符串(String, StringBuffer, StringBuilder)
我们先要记住三者的特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看 API 会发现,String ...
- java中 String StringBuffer StringBuilder的区别
* String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...
- String,StringBuffer,StringBuilder的区别
public static void main(String[] args) { String str = new String("hello...."); StringBuffe ...
- 关于String StringBuffer StringBuilder
0. String对象的创建 1.关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外:String s=new String("Hello world&qu ...
- [置顶] String StringBuffer StringBuilder的区别剖析
这是一道很常见的面试题目,至少我遇到过String/StringBuffer/StringBuilder的区别:String是不可变的对象(final)类型,每一次对String对象的更改均是生成一个 ...
- Java学习笔记--String StringBuffer StringBuilder
String StringBuffer StringBuilder String http://docs.oracle.com/javase/7/docs/api/ 中文: http://www.cn ...
- String StringBuffer StringBuilder (转)
转自:http://www.iteye.com/topic/522167 众所周知,String是由字符组成的串,在程序中使用频率很高.Java中的String是一个类,而并非基本数据类型. 不过她却 ...
- 【Java基础】String StringBuffer StringBuilder
String String是不可变的 我们都知道String不是基本数据类型,而是一个对象,并且是final类型的,不可变的.(public final class String) 查看以下代码: S ...
- String,StringBuffer,StringBuilder的区别及其源码分析
String,StringBuffer,StringBuilder的区别这个问题几乎是面试必问的题,这里做了一些总结: 1.先来分析一下这三个类之间的关系 乍一看它们都是用于处理字符串的java类,而 ...
随机推荐
- 光流和KLT
一 光流 光流的概念是Gibson在1950年首先提出来的. 它是空间运动物体在观察成像平面上的像素运动的瞬时速度.是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存 ...
- AsyncTask来源分析(一)
于android开发过程AsyncTask我会经常处理它.在网上,也有很多的其描述,因此,这里是不是说的用法,直接写自己的学习经验,以及它的一些浅显的认识,忘记错批评. AsyncTask它是一个抽象 ...
- [WF4.0 实战] WPF + WCF + WF 打造Hello World(基础篇)
本篇博客是一个基础的演示样例,也就是一个新手教程吧!让大家熟悉一下WPF + WCF + WF三者的关系!这仅仅是一个基础篇,下篇会继续深入,作为这段时间研究工作流的一个小小总结! 三者关系: WPF ...
- 关于通过id查询记录的一些总结
最近在做一个oa系统,简化了账号的设置,列名均为id,类型均为varchar:有的表将id设置成了主键,有的表没有设置成主键. 通过举例说明通过id查询的一些问题. 之前登陆的时候,账号001-007 ...
- Java得到的一周的最后一天的一段时间内
Java得到的一周的最后一天的一段时间内 1.设计源代码 LastDayOfWeek.java: /** * @Title:LastDayOfWeek.java * @Package:com.you. ...
- C++ Primer 学习笔记_54_类和数据抽象 --拷贝构造函数、赋值运算符
拷贝控制 --复制构造函数.赋值操作符 引言: 当定义一个新类型时,须要显式或隐式地指定复制.赋值和撤销该类型的对象时会发生什么– 复制构造函数.赋值操作符和析构函数的作用! 复制构造函数: ...
- TCP流量控制协议
说明: 本文仅供学习交流.转载请标明出处,欢迎转载! 本文是下面文献相关内容的总结 [1] <TCP/IP具体解释 卷1:协议> [2] <TCP/IP协议族 第4版> [3] ...
- 【BZOJ3450】【Tyvj1952】Easy 可能DP
联系: #include <stdio.h> int main() { puts("转载请注明出处[辗转山河弋流歌 by 空灰冰魂]谢谢"); puts("网 ...
- 教你一步一步部署.net免费空间OpenShift系列之三------上传ASP.net程序
接上回书,创建应用后,我们如何将自己的ASP.Net部署到应用空间呢,这里用WinSCP的SFTP协议进行上传和下载 上传ASP.net程序 下载WinSCP,并打开PuTTYGen 点击Genera ...
- Swift语言指南(一)--语言基础之常量和变量
原文:Swift语言指南(一)--语言基础之常量和变量 Swift 是开发 iOS 及 OS X 应用的一门新编程语言,然而,它的开发体验与 C 或 Objective-C 有很多相似之处. Swif ...