• 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线程不安全

  • 相关阅读:
    读书笔记:A Philosophy of Software Design
    面向对象编程—价值万亿美元的灾难
    刚哥谈架构 (二) 我眼中的架构师
    软件质量成本神话
    API 如何选择 REST,GraphQL还是gRPC
    影响您的代码库的10个编程代码味道
    为什么要不断重构
    php导出excel表格的使用
    浅谈HTTP中Get与Post的区别
    C# 程序配置文件的操作(ConfigurationManager的使用)
  • 原文地址:https://www.cnblogs.com/shineyoung/p/10482897.html
Copyright © 2020-2023  润新知