最近在牛课网上做了几道字符串操作的题目,好久没有做题了,之前用的也是大一时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的更多相关文章

  1. JAVA String、StringBuffer、StringBuilder类解读

    JAVA String.StringBuffer.StringBuilder类解读 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作 ...

  2. Java String,StringBuffer和StringBuilder的区别

    [可变与不可变] String是字符串常量,不可变. StringBuffer和StringBuilder是字符串变量,可变. [执行速度方面] StringBuilder > StringBu ...

  3. Java String、StringBuffer、StringBuilder有什么区别

    ① String是Java语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑.它是典型的immutable类,被声明成final class,所有属性也都是final的,由于它的不可变性,类 ...

  4. [Java]String、 StringBuffer、StringBuilder的区别

    一.异同点: 1) 都是 final 类, 都不允许被继承; 2) String 长度是不可变的, StringBuffer.StringBuilder 长度是可变的; 3) StringBuffer ...

  5. java ->String、StringBuffer、StringBuilder三者之间的区别

    1.首先说运行速度,速度由快到慢排列:StringBuilder > StringBuffer > String String最慢的原因: String为字符串常量,而StringBuil ...

  6. Java ——String 类 StringBuffer 和 StringBuilder类 随机字符

    本节重点思维导图 String 类 创建字符串 String str = "I love ai"; 在代码中遇到字符串常量时,"I love ai",编译器会使 ...

  7. java String,StringBuffer,StringBuilder区别及联系

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

  8. java——String、StringBuffer、StringBuilder、包装类、单双引号

    String: String是一个特殊的类,被定义为final类型,为字符串常量,同样的字符串在常量池中不能重复. 但是由于使用关键字new创建新的字符串,java会在对中分配新的空间,这样即使字符串 ...

  9. Java -- String、StringBuffer、StringBuilder

    原文:http://blog.csdn.net/kingzone_2008/article/details/9220691 String:不可变. StringBuffer(JDK1.0):可变,线程 ...

随机推荐

  1. tkinter获取键盘输入

    tkinter获取键盘输入

  2. 销售人员的分析,也可以用类似RFM的思路吗?

    本文转自知乎 作者:接地气的陈老师 ————————————————————————————————————————————————————— 有同学问:“销售人员的分析,也可以用类似RFM的思路吗, ...

  3. 白鹭引擎 - 本地坐标和舞台坐标的转化 ( globalToLocal, localToGlobal )

    class Main extends egret.DisplayObjectContainer { /** * Main 类构造器, 初始化的时候自动执行, ( 子类的构造函数必须调用父类的构造函数 ...

  4. 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 ...

  5. leetcode1025

    public class Solution { public bool DivisorGame(int N) { == ) { return false; } else { return true; ...

  6. DJango之视图函数

    一)Django WEB框架 2) request.path和request.get_full_path() 是请求的路径 3)render:页面渲染 4)redirect:页面跳转 3)模板语法: ...

  7. TCP 协议相关

    TCP特点: 提供可靠的,保证数据能够准确的到达目的地,如果不能,需要检测发现并重传 流量可控,管理发送数据的频率,不超过设备的承载能力 滑动窗口:https://blog.csdn.net/wdsc ...

  8. Linux命令:ssh

    ssh介绍 ssh用法 ssh帮助 SSH() BSD General Commands Manual SSH() NAME ssh — OpenSSH SSH client (remote logi ...

  9. 遍历DOM树,过滤节点

    jQuery还提供以下方法来过滤节点.  方法  说明  first()  获取第一个,示例 $('li').last()  last()  获取最后一个,示例$('li').last()  eq() ...

  10. Android DevArt5:如何在Android中创建多线程?

    本篇内容: 如何在Android中创建多进程?查看进程的三种方式有哪些? 多进程模式的运行机制?- 演示了多进程出现问题中的两种情况: 静态成员失效 Application多次创建 IPC基础概念介绍 ...