String类(Java)

本文详细介绍了Java中的String类,包括其不可变性、字符池概念、常用方法如length()、charAt()、contains()、split()等,并展示了各种方法的使用示例,涵盖了字符串的检查、转换、分割和比较等常见操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

String类

概述

字符串是常量,创建之后不可改变

字符串字面值存储在字符池中,可以共享,内存分为栈,堆,方法区,字符池就在方法区里面,

字符池使用类似于整数缓冲区,也是可以进行共享,但是不是提前加载好的,是需要赋值创建的

String s = "Hello";产生一个对象,在字符串池中

String s = new String("Hello");产生两个对象,堆、池各存储一个

方法

length()

public int length():返回字符串的长度

(空格也算一个字符)

  
  String s = "java";
  System.out.println(s.length());

charAt(int index)

public char charAt(int index):根据下标获取字符

从0开始

  String s = "java";
  System.out.println(s.charAt(3));

contains(String str)

public boolean contains(String str):判断当前字符中是否包含str

  
  String s = "java";
  System.out.println(s.contains("ja"));
  true

toCharArray()

public char[] toCharArray():将字符串转换为数组

  String s = "java,java.java";
  System.out.println(s.toCharArray());

indexof() lastindexof()

public int indexof(String str):查找str首次出现的下标,存在,则返回该下标;不存在,则返回-1;

public int indexof(String str,int i):从第i个下标,开始查找,存在,则返回下标,不存在,则返回-1;

public int lastIndexof(String str);查找字符串在当前字符串中最后一次出现的下标索引

  String s = "java";
  System.out.println(s.indexof("java"));
  System.out.println(s.indexof("java",3));
  System.out.println(s.lastindexof("java"));
  0
  5
  10

trim()

public string trim():去掉字符串前后的空格

toUpperCase() toLowerCase()

public string toUpperCase():将小写转成为大写,public string toLowerCase():将大写转成为小写

endWith(String str) startWith(String str)

public boolean endWith(String str);判断字符串是否以str结尾

public boolean startWith(String str);判断字符串是否以str开头

replace(char oldChar char newChar)

public String replace(char oldChar char newChar);将旧字符串替换成新字符串

替换某个字符或者字符串

  
  Stirng s = "java真好用啊java";
  System.out.println(s.replace("java","php"));
  "php真好用啊php"

split(String str)

public String[] split(String str):根据str做拆分

  String say = "java is the best programing language,java xiang";
  String[] arr = say.split(" ");//用空格拆分
  String[] arr = say.split("[ ,]");//用空格或,拆分
  String[] arr = say.split("[ ,]+");//表示空格和,可以连续出现两个
  System.out.println(arr.length);
  for(String string : arr){
      System.out.println(string);
  }
  8 //空格和,都分割了
  java
  is
  the
  best
  programing
  language
  java
  xiang
  ​

equals(String str)

String类中的equals()已经重写,和Object类中的equals()不一样,Object类中的equals()是比较两个对象的地址

而String类中的equals()是比较属性是否相同

equalsIgnoreCase(String str),忽略大小写的比较

compare()

比较大小

比较的是字符在ASCII表中的位置

返回值是下标差值

  String s3 = "abc";
  String s4 = "xyz";
  System.out.println(s3.compare(s4));
  -23
  String s3 = "abc";
  String s4 = "ayzdad";
  System.out.println(s3.compare(s4));
  -23
  
  String s3 = "abc";
  String s4 = "abcxyz";
  System.out.println(s3.compare(s4));
  -3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值