在前面的博客中曾提及Java的数据类型分为基本数据类型,和引用数据类型,而String便是最常见的应用数据类型,本文将着重介绍这一引用数据类型的用法。

String 字符串

    String类是对字符串事物的描述。该类定义了专门用于操作字符串的方法。

   String s1 = "abc";

s1是一个类类型变量, "abc"是一个对象。字符串最大特点:一旦被初始化就不可以被改变。注意不能改变的是"abc"而不是s1的指向。

    String s1="abc";

String s2=new String("abc");

S1在内存中有一个对象—>"abc",而s2在内存中有两个对象,一个是new String(),另一个是"abc"。

String是Object的子类,并且复写了Object的equals方法。在这里只简单介绍 == 与 equals的区别(具体请 参考黑马程序员_Java基础之 equals 与 ==) :== 比较的是内存地址,equals比较的是内容,也就是字符序列。

String用方法:

1.获取

1.1 获取字符串长度,也就是字符串中字符数

int length();

1.2 根据位置获取字符

char charAt(int index);

1.3 根据字符获取在字符中的位置

int indexof(int ch) 返回的是ch在字符串中第一个出现的位置

int indexof(int ch,int FromIndex) 从fromIndex指定位置开始,获取ch在字符串中出现的位置

int indexof(String str); 返回的是str在字符串中第一个出现的位置

int indexof(String str,int FromIndex) 从fromIndex指定位置开始,获取str在字符串中出现的位置反响索引一个字符出现的位置。

int lastindexof(int ch) 返回的是ch在字符串中第一个出现的位置

int lastindexof(int ch,int FromIndex) 从fromIndex指定位置开始,获取ch在字符串中出现的位置

int lastindexof(String str); 返回的是str在字符串中第一个出现的位置

int lastindexof(String str,int FromIndex) 从fromIndex指定位置开始,获取str在字符串中出现的位置

1.4获取字符串中的一部分字符串,也叫子串。

String subString(int beginindex,intendindex) ;

String subString(int beginindex)

2.判断

2.1两个字符串是否相同

boolean equals(Object obj)

boolean equalsIgnoreCase(String str)

2.2字符串中是否包含某个字符串

boolean contains(String str)

2.3两个字符串是否以指定字符串开头或结尾

boolean Startswith(String);

boolean endswith(String);

2.4字符串是否为空

boolean isEmpty();

3.字符串转换

3.1将字符串变成字符串数组

String[] split(String regex);

3.2将字符串变成字符数组

char[] toCharArray();

3.1将字符串变成字节数组

byte[] getBytes();

3.4将字符串数组变成字符串

构造函数 String(char[])

String(char[],offset,count)将字符数组中的一部分转成字符串。

静态函数 static String copyValueof(char[])

static String copyValueof(char[],offset,count)将字符数组中的一部分转成字符串。

3.5将字符串的字母大小写转换

String toUppercase();大写

String toUppercase();小写

3.6将字符串的内容替换

String repalce(char oldch,char newch);

String repalce(String s1,String s2);

3.7将字符串两端空格去掉

String trim();

3.8将字符串进行连接

String concat(String);

4.比较

compareTo();对两个字符串进行自然顺序的比较。小返回负数 等返回0 大返回正数

StringBuffer

是个字符串缓冲区对象,用于存储数据的容器

特点:

1.长度是可变的

2.可以存储不同类型数据

3.最终要转换成字符串使用

4.可以对字符串进行修改

常见用法

1.添加

append(data)将指定数据添加到已有数据的结尾处

insert(位置,字符串) 将数据插入到指定位置

2.删除

delete(start,end) 删除缓冲区中的数据,包含start不包含end

deleteCharAt(ine index)删除指定位置元素

StringBuffer.delete(0,sb.length());

3.查找

char charAt(index);

int indexof(string)

int lastindexof(String);

4.修改

StringBuffer replace(start,end.String)

void setCharAt(index,char)

setlength()设置长度

5.反转

StringBuffer reverse();

6.将缓冲区中的指定数据存储到字符数组中

void getChars(int srcBegin,int srcEnd,char[] dst,int dstbegin)

StringBuilder 线程不同步的,StringBuffer是同步的。

StringBuilder是jdk 1.5 之后产生的新特性与StringBuffer相比,因为是非线程安全的,所以StringBuilder更高效,而在日常开发中StringBuilder使用的频率更多。

建议使用StringBuilder效率快。

十四、Java基础---------String、StringBuffer、StringBuilder基本应用的更多相关文章

  1. java中 String StringBuffer StringBuilder的区别

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

  2. Java基础 -- String,StringBuilder,StringBuffer三者的区别

    结论 1-String,StringBuilder,StringBuffer 之间的区别主要是在两个方面,即运行速度和线程安全这两方面: 首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:St ...

  3. java中String,StringBuffer,StringBuilder之间的区别

    文章转载自:http://www.cnblogs.com/frankliiu-java/archive/2010/07/05/1771537.html String是固定长度的字符串,如果要发生变化必 ...

  4. java 比较String StringBuffer StringBuilder

    String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...

  5. Java学习|String,StringBuffer,StringBuilder?

    1 String   (1) String的创建机理 由于String在Java世界中使用过于频繁,Java为了避免在一个系统中产生大量的String对象,引入了字符串常量池.其运行机制是:创建一个字 ...

  6. Java基础 String/StringBuff/StringBuilder 常用操作方法复习/内存分析/三者的效率比较

    附:jdk1.8使用IDEA安装.创建.使用JUnit单元测试 笔记总结: /**String 复习 * 1.像C++这样的char arr[]="..." 的方式无法声明Java ...

  7. Java中String/StringBuffer/StringBuilder区别(转)

    1.三者在执行速度方面的比较:StringBuilder >  StringBuffer  >  String 2.String <(StringBuffer,StringBuild ...

  8. Java基础-String和StringBuilder类型(11)

    String类概述 字符串是由多个字符组成的一串数据字符串可以看成是字符数组 构造方法 public String(String original)public String(char[] value ...

  9. Java的String&StringBuffer&StringBuilder

    一:String类 1.String对象的初始化 由于String对象特别用,所以在对String对象进行初始化时,Java提供了一种简化的特殊语法,格式如下: String s = "ab ...

  10. Java之String,StringBuffer,StringBuilder类

    在 java 语言中, 用来处理字符串的的类常用的有 3 个: String.StringBuffer.StringBuilder. 它们的异同点: 1) 都是 final 类, 都不允许被继承; 2 ...

随机推荐

  1. 分模块创建maven项目(一)

    maven是一个项目构建和管理的工具. 我们可以通过maven仓库可以实现管理构建(主要是JAR还包括:WAR,ZIP,POM等等). 我们可以通过maven插件可以实现编译源代.产生Javadoc文 ...

  2. 队列 Soldier and Cards

    Soldier and Cards 题目: Description Two bored soldiers are playing card war. Their card deck consists ...

  3. 熟悉Eclipse开发工具

    一.熟悉Eclipse 1.Eclipse是由IBM公司投资4000万美元开发的集成开发工具.它基于Java语言编写,并且是开放源代码的.可扩展的,也是目前最流行的Java集成开发工具之一.另外,IB ...

  4. 配置Nginx支持ThinkPHP的URL重写和PATHINFO

    ThinkPHP支持通过PATHINFO和URL rewrite的方式来提供友好的URL,只需要在配置文件中设置 'URL_MODEL' => 2 即可.在Apache下只需要开启mod_rew ...

  5. PCTUSED和PCTFREE对数据操作的影响

    1概念理解 首先PCTUSED和PCTFREE都是针对数据块的存储属性,单位都是%.其中PCTFREE决定了数据块什么时候从free list中移除,系统就不可以再往该数据块中插入数据,对于数据块中已 ...

  6. service mysql start出错,mysql启动不了,解决mysql: unrecognized service错误

    service mysql start出错,mysql启动不了,解决mysql: unrecognized service错误的方法如下: [root@ctohome.com ~]# service ...

  7. Struts基础详解

    1.web.xml配置: <filter> <filter-name>Struts2</filter-name> <filter-class> org. ...

  8. HDU 4358 Boring counting(莫队+DFS序+离散化)

    Boring counting Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 98304/98304 K (Java/Others) ...

  9. Codeforces Round #376 (Div. 2) C D F

    在十五楼做的cf..一会一断...比赛的时候做出了ABCF 就没有时间了 之后没看题解写出了D..E是个神奇的博弈(递推或者dp?)看了题解也没有理解..先写了CDF.. C 有n个袜子 每个袜子都有 ...

  10. Ueditor 1.4.3.1 使用 ThinkPHP 3.2.3 的上传类进行图片上传

    在 ThinkPHP 3.2.3 中集成百度编辑器最新版 Ueditor 1.4.3.1,同时将编辑器自带的上传类替换成 ThinkPHP 3.2.3 中的上传类. ① 下载编辑器(下载地址:http ...