IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java中的String类的概述以及方法总结 -> 正文阅读

[Java知识库]java中的String类的概述以及方法总结

String概述

:java.lang 不需要导包

继承结构:继承了Object父类

类定义:
public final class String extends Object
String是final修饰 不能被继承

概述:
String 类代表字符串
Java 程序中的所有字符串字面值(如 “abc” )都作为String类的对象
字符串是常量;它们的值在创建之后不能更改;
理解:字符串转为字符数组进行存储

源码定义

public final class String{
private final char[] value;//常量的字符数组  不可变
}

String的构造方法

String() ----创建空字符串对象 String(String original) - 根据参数创建String对象
String(char[] value) ----分配一个新的 String,使其表示字符数组参数中当前包含的字符序列
String(char[] value, int offset, int count) - —将字符数组部分内容转为字符串

String的方法

  1. char charAt(int index)—返回指定索引处的 char 值如果超出范围,运行抛出StringIndexOutOfBoundsException
  2. int length()—返回此字符串的长度
  3. public String concat(String str)—将当前字符串的内容和参数字符串的内容拼接
public String concat(String str) {
//判断参数是否Wie空串,如果为空串,则直接返回当前对象
    int otherLen = str.length();
    if (otherLen == 0) {
        return this;
    }
    int len = value.length;
//字符数组的复制,产生了新的数组
    char buf[] = Arrays.copyOf(value, len + otherLen);
    str.getChars(buf, len);
    return new String(buf, true);
}
  1. boolean contains(CharSequence s)—判断当前字符串是否包含参数的内容
  2. boolean endsWith(String suffix)—判断当前字符串是否是以参数字符串结尾
  3. boolean startsWith(String prefix)— 判断当前字符串是否是以参数字符串开始
  4. boolean startsWith(String prefix, int toffset)—从指定的位置开始判断当前字符串是否是以参数字符串开始
  5. static String copyValueOf(char[] data)—将参数字符数组包装为String对象返回
  6. boolean equals(Object anObject)—将此字符串与指定的对象比较
String重写了equals方法  比较字符串内容是否相等
public boolean equals(Object anObject) {
        //判断是否是同一个对象
    if (this == anObject) {
        return true;
    }
    //判断是否为String类型,也可以getClass判断
    if (anObject instanceof String) {
        //强转
        String anotherString = (String)anObject;
        //判断长度
        int n = value.length;
        if (n == anotherString.value.length) {
            //判断相同下标的字符是否相同
            char v1[] = value;
            char v2[] = anotherString.value;
            int i = 0;
            while (n-- != 0) {
                if (v1[i] != v2[i])
                    return false;
                i++;
            }
            return true;
        }
    }
    return false;
}
  1. boolean equalsIgnoreCase(String anotherString) — 忽略大小写的比较内容相等
  2. byte[] getBytes()—将字符串转为字节数组—默认码表—idea–UTF-8 eclipse—GBK
  3. void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) —将字符串中的部分字符复制到字符数组中–注意:左闭右开
  4. int hashCode()—重写了该方法—返回此字符串的哈希码值
  5. int indexOf(int ch) —查找字符在字符串中第一次出现的下标
  6. int indexOf(int ch, int fromIndex) —从fromIndex下标处开始查找字符第一次出现的下标
  7. int indexOf(String str) —查找字符串在字符串中第一次出现的下标
  8. int indexOf(String str, int fromIndex)— 从fromIndex下标处开始查找字符串第一次出现的下标
  9. int lastindexOf(int ch)—返回指定字符在此字符串中最后一次出现处的索引。
  10. int lastIndexOf(int ch, int fromIndex)— 返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
  11. int lastIndexOf(String str)—返回指定子字符串在此字符串中最右边出现处的索引。
  12. int lastIndexOf(String str, int fromIndex)—返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索
  13. String intern() — 获取String对象的字符串在常量池中的地址
  14. boolean isEmpty()—判断字符串是否为空串 “” null

替换:不会改变原字符串,会将替换之后的结果以新的字符串返回—将旧字符替换为新字符

  1. String replace(char oldChar, char newChar)
  2. String replace(CharSequence target, CharSequence replacement)

截取:返回一个新的字符串,它是此字符串的一个子字符串。

  1. String substring(int beginIndex)

  2. String substring(int beginIndex, int endIndex)

  3. char[] tocharArray()—将此字符串转换为一个新的字符数组

  4. String toLowerCase()—使用默认语言环境的规则将此 String 中的所有字符都转换为小写

  5. String toUpperCase()—使用默认语言环境的规则将此 String 中的所有字符都转换为大写

  6. String toString() 重写了Object的toString

  7. String trim()—返回字符串的副本,忽略前导空白和尾部空白

其他类型转String

  1. static String valueOf(int i)
  2. static String valueOf(char c)
  3. static String valueOf(char[] data)
  4. static String valueOf(Object obj)

比较当前字符串和参数字符串的大小(字典顺序)

  1. int compareTo(String anotherString)
//compareTo源码
public int compareTo(String anotherString) {
    int len1 = value.length;
    int len2 = anotherString.value.length;
    int lim = Math.min(len1, len2);
    char v1[] = value;
    char v2[] = anotherString.value;


    int k = 0;
    while (k < lim) {
        char c1 = v1[k];
        char c2 = v2[k];
        if (c1 != c2) {
            return c1 - c2;
        }
        k++;
    }
    return len1 - len2;
}
  1. int compareToIgnoreCase(String str)—不考虑大小写

正则相关

  1. boolean matches(String regex)— 告知此字符串是否匹配给定的正则表达式。
  2. String replaceAll(String regex,String replacement)—替换此字符串所有匹配给定的正则表达式的子字符串
  3. String[] split(String regex)— 根据给定正则表达式的匹配拆分此字符串、

重点

字节数组<->字符串
String->byte[]:
44. getBytes()—使用码表
45. byte[] getBytes(String charsetName) -使用指定码表

byre[] ->String:
46. String(byte[] bytes)—使用默认码表
47. String(byte[] bytes,String charsetName)—使用指定码表

字符数组<->字符串
String->char
48. toCharArray()
49. char[] ->String
50. new String(char[] )
51. copyValueOf(char[] cs)

字符串拼接

  1. concat
    因为String不可变,所以每次拼接都返回一个新的字符串对象,不建议concat拼接

  2. “+”
    String str = “a”+“b”;

  3. StringBuilder、StringBuffer

String的内存

字符串常量池:private final char[] value
JDK 1.8之前,字符串常量池在方法区;
在这里插入图片描述
在这里插入图片描述

String str = “abc”;—将"abc"字符数组在常量池中的地址赋值给str
String str1 = new String(“abc”);—将new出来的堆的地址值赋值给str1
堆中对象的value属性存储字符串在常量池中的地址值

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-04 11:03:50  更:2021-08-04 11:04:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/9 4:43:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码