String类
本质:一串不可变的字符数组。
请看String的源码有如下一句话:

常量池(了解即可)
常量池属于方法区,分为三种。
1.全局字符串常量池(String Pool)
存放字符串常量的引用值,每个JVM只有一份。
2.class文件常量池(Class Constant Pool)
每个class在编译阶段都有,存放常量(文本、字符串、final常量……)和符号引用。
3.运行时常量池(Runtime Constant Pool)
每个class都有一个运行时常量池,作用是类在解析之后,将符号引用替换成直接引用。
把全局字符串常量池的引用值和class文件常量池的值关联起来。
关于字符串的“+”连接符以及字符串比较请仔细看运算符和继承章节,里面有讲。

String API 请自行到 https://www.oracle.com/technetwork/java/javase/documentation/jdk8-doc-downloads-2133158.html 下载JAVA的API包,下载完解压打开docs/api/index.html进行查看API的查看。如何查看请自行搜索相关教程,这不是我们的重点。
String常用Api
这些api开发中经常用,要多练习。
System.out.println("String常用API");
String s2 = " dfa345GFGEdfgsew成都45码到功成 ";
System.out.println(s2.length());// 获取字符串长度。
System.out.println(s2.trim());// 去除字符串首尾空格
String s3 = " dfa345gfgedfgsew成都45码到功成 ";
System.out.println(s2.equals(s3));// 比较字符串内容是否相等
System.out.println(s2.equalsIgnoreCase(s3));// 无视大小写比较字符串内容是否相等
System.out.println(s2.toUpperCase());// 字符串的字符全部大写
System.out.println(s2.toLowerCase());// 字符串的字符全部小写
System.out.println(s2.startsWith(" dfa"));// 字符串是否以 daf开始
System.out.println(s2.endsWith("功成 "));// 字符串是否以功成 结束
System.out.println(s2.indexOf("成都"));// 字符串里面“成都”的索引值,从0索引开始。
System.out.println(s2.substring(3, 10));// 截取字符串下标3到10的字符串并返回。
System.out.println(s2.replace("成都45", "都成"));//把字符串"成都45"的值替换成"都成"。
效果:

String类的完整代码:
package com.itcode.demo2;
/**
* @author: 成都码到功成学员
* @Description:
* String类的使用
*/
public class TestString{
public static void main(String[] args) {
// s只是在方法区常量池产生一个字符串abc
// s1在方法区常量池产生一个字符串abc,同时也在堆里面产生一个对象。
// 字符串比较请用equals方法。
String s = "abc";
String s1 = new String("abc");
System.out.println(s==s1);//false
System.out.println(s.equals(s1));//true
System.out.println("=======================================================");
System.out.println("String常用API");
String s2 = " dfa345GFGEdfgsew成都45码到功成 ";
System.out.println(s2.length());// 获取字符串长度。
System.out.println(s2.trim());// 去除字符串首尾空格
String s3 = " dfa345gfgedfgsew成都45码到功成 ";
System.out.println(s2.equals(s3));// 比较字符串内容是否相等
System.out.println(s2.equalsIgnoreCase(s3));// 无视大小写比较字符串内容是否相等
System.out.println(s2.toUpperCase());// 字符串的字符全部大写
System.out.println(s2.toLowerCase());// 字符串的字符全部小写
System.out.println(s2.startsWith(" dfa"));// 字符串是否以 daf开始
System.out.println(s2.endsWith("功成 "));// 字符串是否以功成 结束
System.out.println(s2.indexOf("成都"));// 字符串里面“成都”的索引值,从0索引开始。
System.out.println(s2.substring(3, 10));// 截取字符串下标3到10的字符串并返回。
System.out.println(s2.replace("成都45", "都成"));//把字符串"成都45"的值替换成"都成"。
}
}
Last updated
Was this helpful?