[JAVA基础]String

String的概述

  1. String 代表字符串,字符串是常量,值不可改变,可以共享
  2. 字符串一旦初始化就不可改变。
//字符串的本身初始化后不可改变,而不是指向字符串中的变量不可改变
String str = "hello";
str += " world"; //str = str + "  world";
System.out.println(str);

String的构造方法###

  1. String str = "abc";
  2. String str = new String(); // 创建一个空字符序列
  3. String str = new String(byte[] bytes); // 根据一个字节数组创建一个字符串对象
  4. String str = new String(byte[] bytes,int offset,int length); // 将指定字节数组从索引开始到指定长度结束的这一部分创建成一个字符串对象
  5. String str = new String(char[] value); // 根据一个字符数组创建一个字符串对象
  6. String str = new String(char[] value,int offset,int length); // 将指定字符数组从索引开始到指定长度结束的这一部分创建成一个字符串对象
  7. String str = new String(String origina()); // 根据一个字符串创建一个字符串对象

String的判断功能###

  1. boolean equals(Object obj):比较字符串的内容是否相等
  2. boolean equalsIgnoreCase(String str) :比较字符串的内容是否相等,但是忽略大小写
  3. boolean contains(String str) :判断当前字符串是否包含指定字符串
  4. boolean startsWith(String str) :判断当前字符串是否以指定字符串开始
  5. boolean endsWith(String str) :判断当前字符串是否以指定字符串结束
  6. boolean isEmpty() 判断当前字符串是否为空

String的获取功能###

  1. int length() :获取字符串中字符的个数(字符串的长度)
  2. char charAt(int length) :根据指定索引返回对象的字符,索引最小为0,最大是字符串长度-1
  3. int indexOf(int ch) :获取指定字符第一次出现的索引位置,如果不存在返回-1
    int indexOf(String str) :获取指定字符串第一次出现的索引位置,如果不存在返回-1
  4. int indexOf(int ch,int fromIndex) :获取指定字符从指定索引(包含指定索引)后第一次出现的索引位置,如果不存在返回-1
    int indexOf(String str,int fromIndex) :获取指定字符串从指定索引(包含指定索引)后第一次出现的索引位置,如果不存在返回-1
  5. String substring(int start) :将指定索引前的所有字符串全部舍去,返回按照指定索引(包含指定索引)截取后的字符串
  6. String substring(int start,int end) :返回以指定索引开始,到索引之间的字符串(包含start,不包含end)

String的转换功能###

  1. byte[] getBytes() :将字符串转换成字节数组
  2. char[] toCharArray() :将字符串转换成字符数组
  3. static String copyValueOf(char[] chs) :将字符数组转换成字符串
  4. static String valueOf(char[] chs) :将字符数组转换成字符串
  5. static String valueOf(int i) :将任意基本数据类型转换成字符串
  6. String toLowerCase() :将字符串的大写字母转换成小写字母
  7. String toUpperCase() :将字符串的小写字母转换成大写字母
  8. String concat(String str) :连接字符串

String的其他功能###

#####替换功能#####

  1. String replace(char old,char new) :将字符串中的指定字符替换成新的字符
  2. String replace(String old,String new) :将字符串中的指定字符串替换成新的字符串
    #####切割#####
    String[] split(String regex) :根据指定的字符串进行分割,将原先的字符串分割成一个字符串数组
//当字符串是以分隔符开头的话,会分出来一个空字符
//当字符串是以分隔符结尾的时候,不会多出一个空字符,结果正常
String str = "1,2,3,4,5,6";
String[] arr = str.split(",");
for ( int i = 0; i < arr.length; i++){
	System.out.println("编号:" + arr[i] );
}

#####去除字符串两侧空格#####
String trim() :去除字符串两侧空格
#####按照字典顺序比较两个字符串#####

  1. int compareTo(String str) :让字符串按照ASCII表的顺序比较,使用当前字符串的ASCII表的对应数值减去指定字符串对应的数值
  2. int compareToIgnoreCase(String str) :让字符串按照ASCII表的顺序比较,使用当前字符串的ASCII表的对应数值减去指定字符串对应的数值,忽略大小写

String的面试题###

String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1==s2); //false 因为比较的是堆中对象的地址值
System.out.println(s1.equals(s2)); //true 因为字符串重写了equals方法,比较的是内容是否相等

String s3 = new String("hello");
String s4 = "hello";
System.out.println(s3==s4); //false 一个记录的是堆中的地址值,一个记录的是方法区常量池中的地址值
System.out.println(s3.equals(s4)); //true 因为字符串重写了equals方法,比较的是内容是否相等


String s5 = "hello";
String s6 = "hello";
System.out.println(s5==s6); //true 两个记录的都是方法区常量池中的地址值
System.out.println(s5.equals(s6)); //true 因为字符串重写了equals方法,比较的是内容是否相等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值