一、String类

  String类代表字符串,是由字符构成的一个序列。创建String对象的方法很简单,有以下几种:

1)用new来创建:

  String s1 = new String("my name is tongye");

2) 不用new直接创建:

  String s2 = "my name is tongye";

3) 可以用字符数组来创建一个字符串:

  char[] c = {'t','o','n','g','y','e'};

  String s3 = new String(c);

  String对象是不可变的,它们的值在创建后不能更改。String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容。像下面这样:

  String s = "tongye";     // 创建了一个内容为 “tongye” 的String对象,并将其引用赋值给s,s是一个String类型的引用

  s = "TONGYE";          // 创建了一个内容为“TONGYE”的新的String对象,并将其引用赋值给s

  第二条语句创建后,第一个String对象“tongye”并没有消失,只是不能再访问它,因为现在引用s指向了另一个对象“TONGYE”。

  String类有15种构造方法,以及许多处理字符串的方法,下面简单介绍一些:

String();                  // 初始化一个新创建String对象,使其表示一个空字符序列

String(byte[] bytes);            // 使用平台默认的字符集解码指定的byte数组,构造一个新的String

String(byte[] bytes,Charset charset);        // 使用指定的Charset解码指定的byte数组,构造一个新的String

String(byte[] bytes,int offset,int length);  // 使用平台默认的字符街解码指定的byte子数组,构造一个新的String,其中offset是第一个字符的索引,length是子数组的长度

String(StringBuilder builder);         // 分配一个新的字符串,它包含字符串生成器参数中当前包含的字符序列

String(StringBuffer buffer);          // 分配一个新的字符串,它包含字符串缓冲区参数中当前包含的字符序列
charAt(int index);        // 返回指定索引处的char值

s1.compareTo(s2);       // 按字典顺序比较两个字符串s1和s2,返回一个int型数据

s1.equals(s2);             // 将s1与s2相比较,若完全相等,则返回true    

s1.contact(s2);            // 将s2连接到字符串s1的结尾

toString();                   // 返回此对象本身

toUpperCase();            // 将所有字符都转换成大写

valueOf(boolean b);     // 返回boolean参数的字符串表示形式

substring(int beginIndex,int endIndex);    // 返回一个新的字符串,它是该字符串的子字符串,在beginIndex和endIndex之间

split(regex);                 // 使用给定的正则表达式来拆分此字符串

二、StringBuffer和StringBuilder类

  String对象一旦被创建,其内容便不能更改,这使得String类并不是很灵活,在一些场合下并不方便。StringBuffer和StringBuilder类是可以替代String类的另一种处理字符串的解决方案,它们相比String类来说更为灵活:可以向一个StringBuffer或StringBuilder类中添加、插入或追加新内容。一般来说,只要是使用字符串的地方,都可以用StringBuffer或StringBuilder类。

1、StringBuffer

  StringBuffer是一个线程安全的可变字符序列,一个类似于String的字符串缓冲区,但是不能修改。StringBuffer有多种处理字符串的方法,其中主要操作是append和insert方法。StringBuilder是线程安全的。

append(boolean b);    // 将布尔类型参数的字符串表示形式追加到序列末尾,其他参数类型与之类似

insert(int offset,char c);    // 将char类型参数的字符串表示形式插入到此序列索引为offset的字符后面

delete(int start,int end);    // 删除索引号start和end之间的字符

deleteCharAt(int index);    // 移除序列指定位置处的char

2、StringBuilder

  StringBuilder是一个可变的字符序列。它提供一个与StringBuffer兼容的API,但不保证同步。该类被设计为StringBuffer的一个简单替换,用在字符串缓冲区被单个线程使用的时候。在大多数情况下,它比StringBuffer快。将StringBuilder的实例用于多个线程是不安全的。

JAVA学习笔记--字符串概述的更多相关文章

  1. Java学习笔记--字符串和文件IO

    1.Java中的字符串类和字符的表示 2.区分String,StringBuilder和StringBuffer 3.从命令行中给main方法传递参数 4.文件操作 1 Java中的字符串和字符 1. ...

  2. Java学习:字符串概述与特点

    字符串概述与特点 java.lang.String类 代表字符串 API当中说:Java程序中的所有字符串字面值(如“abc“)都作为此类的实例实现.其实就是说:程序当中所用的双引号字符串,都是Str ...

  3. Java学习笔记——字符串常用函数

    class JavaTest4_String { public static void main(String[] args) { String str1 = "IOS,ANDROID,BB ...

  4. 20145330第十周《Java学习笔记》

    20145330第十周<Java学习笔记> 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就 ...

  5. java学习笔记之日期日历类

    java学习笔记之日期日历 Date日期类概述: 表示特定的瞬间,精确到毫秒 Date类的构造方法: 1.空参数构造方法 Date date = new Date(); 获取到当前操作系统中的时间和日 ...

  6. java学习笔记11--集合总结

    java学习笔记系列: java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Ob ...

  7. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  8. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

  9. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

随机推荐

  1. Gradle Goodness: Run a Build Script With a Different Name

    Normally Gradle looks for a build script file with the name build.gradle in the current directory to ...

  2. Linux内存管理-高端内存(二)

    在支持MMU的32位处理器平台上,Linux系统中的物理存储空间和虚拟存储空间的地址范围分别都是从0x00000000到0xFFFFFFFF,共4GB,但物理存储空间与虚拟存储空间布局完全不同.Lin ...

  3. GoBelieve IM 消息推送的方案

    消息推送设计方案如下: 所有接入im SDK的deviceTOken都会存储到IM服务器.就可以 IM服务器来根据你们服务器指定的useId来下发消息.判断客户端在线,并且APP在前台.就是socke ...

  4. Notes 20180506 : Java程序设计语言概述

    2.Java程序设计语言概述 如果对于开发语言的排行榜有所关注的话,那么会发现很长一段时间以来Java都是位居榜首的高级开发语言,作为一个Java开发者,为此感到骄傲的同时也深感忧虑,骄傲的是自己接触 ...

  5. 微服务—熔断器Hystrix

    前言在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元应用间通过服务注册与发现的方式互相依赖. 由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服 ...

  6. Oracle视图View

  7. js中的冒泡排序

    <!-- 冒泡排序:把一组数列按照一定的顺序进行排列,从大到小,或者从小到大 -->          // 控制循环的轮数          arr = [3,14,55,2,1,4,5 ...

  8. centos 7 配置nginx 的yum源

    在/etc/yum.repos.d里创建nginx.repo文件: touch nginx.repo vim nginx.repo 填写如下内容后保存 [nginx] name=nginx repo ...

  9. Java调用WeChat's API总结

    微信公众号结合着内置浏览器,有着普通浏览器无法完成的服务,前者可以获取浏览页面的微信用户的信息,从而根据信息为用户提供基于微信的更多服务:而后者仅仅能够浏览页面,通过用户的输入信息与用户互动. 本人根 ...

  10. 【Java web 容器resin的安装】

    #resin的安装 #启动resin #访问resin监听的java web容器端口 resin修改端口监听号