Java学习笔记:String类

本文详细介绍了Java String类的基础知识,包括其作为不可变字符序列的特点、常量池的工作原理,以及常用的字符串操作方法,如charAt(), equals(), replace()等。通过实例演示展示了如何运用这些方法进行字符串处理。
摘要由CSDN通过智能技术生成

字符串String类

String类是开发中最常用的类。

1.1 String基础

  1. String类又称作不可变字符序列
  2. String位于java.lang包中,Java程序默认导入java.lang包下的所有类
  3. Java字符串就是Unicode字符序列,例如字符串“Java”就是4个Unicode字符’J’、‘a’、‘v’、'a’组成的
  4. Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义的类String,每个用双引号括起来的字符串都是String类的一个实例。

定义String对象:

String str1 = new String("eawf");
String str2 = "safdds";

1.2 常量池

  1. 全局字符串常量池(String Pool):存放字符串常量的引用值
  2. class文件常量池(Class Constant Pool):存放常量(文本字符串、final常量等)和符号引用
  3. 运行时常量池(Runtime Constant Pool):每个class都有一个运行时常量池,类在解析之后,将符号引用替换成直接引用,与全局常量池中的引用值保持一致。

1.3 String类常用方法

方法解释说明
char charAt(int index)返回字符串中第index个字符
boolean equals (String other)如果字符串与other相等,返回true;否则,返回false
boolean equalslgnoreCase(String other)如果字符串与other相等(忽略大小写),则返回true;否则,返回false
int indexOf(String str)返回从头开始查找第一个子字符串str在字符串中的索引位置。如果未找到子字符串str,则返回-1
int lastIndexOf(String str)返回从末尾开始查找第一个子字符串str在字符串中的索引位置。如果未找到子字符串str,则返回-1
int length()返回字符串的长度
String replace(char oldChar,char newChar)返回一个新串,它是通过newChar替换此字符串中出现的所有oldChar而生成的。
boolean startsWith(String prefix)如果字符串以prefix开始,则返回true
boolean endsWith(String prefix)如果字符串以prefix结尾,则返回true
String substring(int beginIndex)返回一个新字符串,该串包含从原始字符串beginIndex到串尾
String substring(int beginIndex,int endIndex)返回一个新字符串,该串包含从原始字符串beginIndex到串尾或endIndex-1的所有字符
String toLowerCase()返回一个新字符串,该串将原始字符串中的所有大写字母改成小写字母
String toUpperCase()返回一个新字符串,该串将原始字符串中的所有小写字母改成大写字母
String trim()返回一个新字符串,该串删除了原始字符串头部和尾部的空格

注:String是不可变字符序列。所有的替换、截取字符串、去空格、转换大小写等都是生成了新字符串。

public class demo01 {
    public static void main(String[] args) {
        String str1 = new String("abc");
        String str2 = "abc";
        String str3 = "aBc";

        System.out.println(str1 == str2);    //false 判断两者Unicode值
        System.out.println(str1.equals(str2)); //true 判断两者的值


        System.out.println(str2.charAt(0));    //返回str2第一个字符
        System.out.println(str2.charAt(str2.length() - 1)); //返回str2最后一个字符

        //比较字符串
        System.out.println(str2.equals(str3));
        System.out.println(str2.equalsIgnoreCase(str3));   //不区分大小写

        //从头或从尾查找,返回第一个找到的子字符串的索引位置,若未找到,返回-1
        System.out.println("abcdefg".indexOf("def"));         //从头查找,结果:3
        System.out.println("abcdefg".lastIndexOf("def"));     //从尾查找,结果:3

        //字符串替换
        String str5 = "abcdabcd".replace('d','D');
        System.out.println(str5);                         //abcDabcD,替换一个字符
        String str6 = "abcdabcd".replace("cd","HELLO");
        System.out.println(str6);                        //abHELLOabHELLO  替换一个字符串

        //判断开头(结尾)是否以"..."字符串开头(结尾)
        System.out.println("xsj,ababab".startsWith("xsj"));  //ture
        System.out.println("xsj,ababab".endsWith("xsj"));    //false

        //截取字符串
        String str7 = "abcdefghijklmnopqrstuvwxyz".substring(6);
        System.out.println(str7);                             //ghijklmnopqrstuvwxyz
        String str8 = "abcdefghijklmnopqrstuvwxyz".substring(6,11);  //6~(11-1)
        System.out.println(str8);                             //ghijk

        //大小写切换
        System.out.println("abcdE".toUpperCase());  //ABCDE
        System.out.println("abcdE".toLowerCase());  //abcde

        //删除字符串头尾的空格
        String str4 = "  a b   ";
        System.out.println(str4.trim());

        //删除字符串所有的空格
        System.out.println(str4.replace(" ",""));
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值