Java String和StringBuffer和StringBuilder
最近在牛课网上做了几道字符串操作的题目,好久没有做题了,之前用的也是大一时C语言做的,对Java字符串操作不太了解,所以深入了解一下String类的相关用法
String构造方法
String() 空构造
String(byte[] bytes) 把字节数组转成字符串
String(byte[] bytes,int index,int length) 把字节数组的一部分转成字符串
String(char[] value) 把字符数组转成字符串
String(char[] value,int index,int count) 把字符数组的一部分转成字符串
String(String original) 把字符串常量值转成字符串
////////////////////////////////////////////
String这时候会有一个值传递和引用传递的问题
String a = "abc"
String b = new String("abc")
String c = "abc"
a=c a,c都是"abc"的引用
a!=b b是一个新的String类的引用
///////////////////////////////////////////////
String常用方法
length() 最常用的方法,返回String长度
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
(srcBegin -- 字符串中要复制的第一个字符的索引。
srcEnd -- 字符串中要复制的最后一个字符之后的索引。
dst -- 目标数组。
dstBegin -- 目标数组中的起始偏移量。)
public cha[] toCharArry() 返回String转换的char[]
public char charAt(int index) 注意返回的是char类型
public int indexOf(int ch) 返回字符第一次出现的位置,没有-1
public int indexOf(String str)
public int lastIndexOf(int ch) 返回字符最后一次出现的位置,没有-1
public int lastIndexOf(String str)
public String[] split(String regex) 返回分割后的String[] 比如把"a,b,c"分割为["a","b","c"]
public String toLowerCase() 返回全是小写的字符串
public String toUpperCase() 返回全是大写的字符串
public String substring(int beginIndex) 返回从开始索引的字符子串
public String substring(int beginIndex, int endIndex) 返回从开始索引到结束索引的字符子串
String 是不可变类
StringBuffer StringBuilder都是可以改变的
(内部其实是char[],添加元素前会有一个扩容操作,创建一个更大的char[],然后复制进去)
append() 添加字符串
delete()
StringBuffer 线程安全 StringBuilder线程不安全
Java String和StringBuffer和StringBuilder的更多相关文章
- JAVA String、StringBuffer、StringBuilder类解读
JAVA String.StringBuffer.StringBuilder类解读 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作 ...
- Java String,StringBuffer和StringBuilder的区别
[可变与不可变] String是字符串常量,不可变. StringBuffer和StringBuilder是字符串变量,可变. [执行速度方面] StringBuilder > StringBu ...
- Java String、StringBuffer、StringBuilder有什么区别
① String是Java语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑.它是典型的immutable类,被声明成final class,所有属性也都是final的,由于它的不可变性,类 ...
- [Java]String、 StringBuffer、StringBuilder的区别
一.异同点: 1) 都是 final 类, 都不允许被继承; 2) String 长度是不可变的, StringBuffer.StringBuilder 长度是可变的; 3) StringBuffer ...
- java ->String、StringBuffer、StringBuilder三者之间的区别
1.首先说运行速度,速度由快到慢排列:StringBuilder > StringBuffer > String String最慢的原因: String为字符串常量,而StringBuil ...
- Java ——String 类 StringBuffer 和 StringBuilder类 随机字符
本节重点思维导图 String 类 创建字符串 String str = "I love ai"; 在代码中遇到字符串常量时,"I love ai",编译器会使 ...
- java String,StringBuffer,StringBuilder区别及联系
String 字符串常量(不可变)StringBuffer 字符串变量(线程安全,可变) StringBuilder 字符串变量(非线程安全,性能优,可变) 简要的说, String 类型和 Stri ...
- java——String、StringBuffer、StringBuilder、包装类、单双引号
String: String是一个特殊的类,被定义为final类型,为字符串常量,同样的字符串在常量池中不能重复. 但是由于使用关键字new创建新的字符串,java会在对中分配新的空间,这样即使字符串 ...
- Java -- String、StringBuffer、StringBuilder
原文:http://blog.csdn.net/kingzone_2008/article/details/9220691 String:不可变. StringBuffer(JDK1.0):可变,线程 ...
随机推荐
- 13.App爬取相关库的安装(Charles,Mitmproxy,Appium)
由于App没有像浏览器一样直观的后台请求工具,主要用一些抓包技术抓取数据.(目前也在学习安装,参考书籍.) 首先呢,一些简单的接口通过Charles或mitmproxy分析,找出规律,直接用程序去抓取 ...
- Apache 服务器 基础知识小结
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软 ...
- WebService简单教程
一.简介 1.什么是WebService? WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Htt ...
- eclipse gradle插件 org.gradle.tooling.GradleConnectionException: Could not install Gradle distribution from 'https://services.gradle.org/distributions/gradle-3.4-bin.zip'.
eclipse安装gradle后出现如下异常: org.gradle.tooling.GradleConnectionException: Could not install Gradle distr ...
- leetcode987
public class Solution { private Dictionary<int, List<KeyValuePair<int,int>>> dic = ...
- day21-类的组合
一.面向对象的组合用法 软件重用的重要方式除了继承之外还有另外一种方式,即:组合组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合 用组合的方式建立了类与组合的类之间的关系,它是一种‘ ...
- GitHub创建个人主页
在GitHub,一个项目对应唯一的Git版本库,创建一个新的版本库就是创建一个新的项目.访问仪表板(Dashboard)页面,如图3-1,可以看 到关注的版本库中已经有一个,但自己的版本库为零.在显示 ...
- 【转】UGUI研究院之缓存策略让UI打开更快(三十)
UGUI研究院之缓存策略让UI打开更快(三十) [投稿]Unity3D游戏优化之头顶UI 注意里面提到了:SuperTextMesh:能渲染动态文字,富文本支持图文混排,缺点是支持atlas但很弱,资 ...
- suse 奇怪的crash 问题
最近遇到一个suse的crash 问题: 我没有使用 mkswap /dev/磁盘路径 来制作swap分区,我有很多剩余内存,我设置nr_swapfiles为0,可是我还是遇到了关于swap的cras ...
- C++17尝鲜:变长 using 声明
using 声明 先来看 using 声明在类中的应用: 代码1 #include <iostream> using namespace std; struct A { void f(in ...