在路上

 找回密码
 立即注册
在路上 站点首页 学习 查看内容

Java基础学习——String类及其方法

2016-12-16 12:53| 发布者: zhangjf| 查看: 544| 评论: 0

摘要: String类概述该类被final修饰,无子类,不可被复写。创建的对象一旦初始化,其内容不可被改变。String类复写了Object类中的equals()定义了自己的独特内容,该方法用于判断字符串相同。例:String s1 = abc;String ...

String类概述
该类被final修饰,无子类,不可被复写。创建的对象一旦初始化,其内容不可被改变。
String类复写了Object类中的equals()定义了自己的独特内容,该方法用于判断字符串相同。
例:

  1. String s1 = "abc";
  2. String s2 = new String("abc");
  3. System.out.println(s1==s2);
  4. System.out.println(s1.equals(s2));
复制代码

结果显示
false
true
面试中常考:这里的s1,s2有何区别?
s1在内存中一个对象,s2有两个对象。因为内存中有一个常量池存放字符串。字符串被存放进去以后,以后创建新的字符串时会优先在常量池中寻找并组合而成,而s2是创建一个全新的字符串。如:

  1. String s1 = "abc";
  2. String s3 = "abc";
  3. System.out.println(s1==s2);
复制代码

结果将是true,即s1和s3指向了同一个对象。

常见方法

1.获取

1.1 字符串长度。

  1. int length():获取长度。
复制代码

1.2 根据位置获取位置上的某个字符。

  1. char charAt(int index) :返回指定索引处字符。
复制代码

1.3 根据字符获取该字符在字符串中的位置。如果没有找到返回-1.

  1. int indexOf(int ch):找到该字符第一次出现的位置
  2. int indexOf(int ch,int fromIndex):从fromIndex处开始索引。
  3. int indexOf(String str)
  4. int indexOf(String str,int fromIndex):从fromIndex检索字符串str的位置。
复制代码

相反的,如果需要反向索引,有类似方法

  1. int lastIndexOf(*) 从右往左索引,然后**输出其在字符串数组中的位置**
复制代码
2.判断

2.1 字符串中是否包含某一个子串。

  1. boolean contains(CharSequence str);
复制代码

★特殊之处:int indexOf(str)也可以检索str是否存在。

2.2 字符串中是否有内容。

  1. boolean isEmpty():原理就是判断length是否为0
复制代码

2.3 字符串是否是以指定内容开头。

  1. boolean startWith(String str);
复制代码

2.4 字符串是否是以指定内容结尾

  1. boolean startWith(String str);
复制代码

应用场景:通过判断文件名检索所需要的文件

2.5 判断字符串内容是否相同

  1. boolean equals(str)
复制代码

2.6 判断内容是否相同并忽略大小写

  1. boolean equalsIgnoreCase(str)
复制代码
3.转换

3.1 将字符数组转成字符串
构造函数

  1. String(char[])
  2. String(char[],offset,count)将字符数组一部分转成字符串
复制代码

例:

  1. char[] arr = {'a','b','c','d','e','f'};
  2. String s = new String(arr,1,3);
复制代码

结果将是 bcd.因为数组下角标从0开始,故这里起始位是b,取3个字符,即为bcd.

静态方法:需要跟在String后使用

  1. static String copyValueOf(char[]);
  2. static String copyValueOf(char[],offset,count);
复制代码

3.2 将字符串转成字符数组

  1. char[] toCharArray();
复制代码

3.3 将字节数组转成字符串

  1. String(byte[]);
  2. String(byte[],offset,count);
复制代码

3.4 将字符串转成字节数组

  1. byte[] getBytes();
复制代码

3.5 将基本数据类型转成字符串

  1. static Sting valueOf();
复制代码

特殊:字符串和字节数组在转换过程中是可以指定编码表的

4.替换
  1. String replace(old char/str,new char/str);
复制代码

注意:由于字符串一旦被创建不能被改变,所以这里的替换后将会返回一个新字符串副本,而原来的字符串不会有变换

5.切割
  1. String[] split(regex) 以regex为分割符号进行分割
复制代码
6.子串
  1. String substring(begin);从指定出开始到结尾
  2. String substring(begin,end);从begin处开始到end处结束,之间的子串。**包括begin但不包括end.**
复制代码

  1. String s = "abcdef";
  2. s1 = s.substring(2);
  3. s2 = s.substring(2,4);
复制代码

结果s1=cdef,s2=cd。

7.转换

7.1 将字符串转成大写或者小写

  1. String toUpperCase();
  2. String toLowerCase();
复制代码

7.2 将字符串两端多个空格去除

  1. String trim();
复制代码

7.3 对两个字符串进行自然顺序的比较

  1. int compareTo(str);**比较两个字符串大小,并返回第一个不同的字符之间的ASCII码值差值。**
复制代码

最新评论

小黑屋|在路上 ( 蜀ICP备15035742号-1 

;

GMT+8, 2025-7-7 18:28

Copyright 2015-2025 djqfx

返回顶部