java学习笔记_关于字符串概述
一、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学习笔记_关于字符串概述就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
- Keras中带LSTM的多变量时间序列预测
- Spring Cloud(十)高可用的分布式配置中心 Spring Cloud Config 中使用 Refresh
- Hibernate 的性能优化的时候碰到了"抓取策略",有四种
- 基于 Spring Cloud 完整的微服务架构实战
- maven build时报错Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test
- Spring Cloud(九)高可用的分布式配置中心 Spring Cloud Config 集成 Eureka 服务
- Spring Cloud(八)高可用的分布式配置中心 Spring Cloud Config
- 用Raspberry Pi Zero打造「即插即用」的Web服务器
- Spring Cloud(七)服务网关 Zuul Filter 使用
- 基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理
- Spring Cloud(六)服务网关 zuul 快速入门
- Docker Registry Server 搭建,配置免费HTTPS证书,及拥有权限认证、TLS 的私有仓库
- Ubuntu 17.04 编译安装 Nginx 1.9.9 配置 https 免费证书
- 基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Git请求合并说明
- guava学习(一):观察者模式
- 「Workshop」第十三期:统计检验与多重矫正
- Linux内核参数调优
- 扒掉“缓冲区溢出”的底裤
- MySQL not exists 真的不走索引么?
- 「R」使用 tinyscholar 展示个人谷歌学术档案
- GC调优到底是什么
- VBA编写Ribbon Custom UI编辑器06——读取xml
- centos安装kubectl和minikube工具
- 性能测试必备命令(4)- pstree
- 你必须熟练使用的10条 Python 技巧
- 四叉树在碰撞检测中的应用
- 一些Redis很实用的工作技巧
- 设计模式(Design Patterns)Java版