首页 > 代码库 > Java-String类学习笔记

Java-String类学习笔记

   String类位于java.lang包下,String类代表字符串,字符串是常量,它们的的值在创建后不能更改;为了支持可变的字符串,Java还为我们提供了StringBuilder和StringBuffer类。

1. String类中常用方法

    a. 与索引、长度相关的方法

返回值类型 函数名 功能
char charAt(int index) 返回指定索引处的 char 值。
String subString(int beginIndex,int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。该子字符串从beginIndex 处开始,直到索引 endIndex - 1 处的字符。
int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。
int indexOf(String str) 返回指定子字符串在此字符串中第一次出现处的索引。
int lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引。
int lastIndexOf(String str) 返回指定子字符串在此字符串中最右边出现处的索引。
int length() 返回此字符串的长度。
boolean isEmpty() 当且仅当 length()0 时返回 true

   注意:在执行subString方法时,会创建新的字符数组,而不是使用现存的字符数组。

   b. 与比较、包含、转换相关的方法

返回值类型 函数名 功能
String concat(String str) 将指定字符串连接到此字符串的结尾。
boolean contains(charsequence s) 当且仅当此字符串包含指定的 char 值序列时,返回 true。
boolean endWith(String suffix) 测试此字符串是否以指定的后缀结束。
boolean startsWith(String prefix) 测试此字符串是否以指定的前缀开始。
int compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不考虑大小写。
boolean equalsIgnoreCase(String anotherString) 将此 String 与另一个 String 比较,不考虑大小写。
byte[] getBytes(charset charset) 使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。
char[] toCharArray() 将此字符串转换为一个新的字符数组。
String toUpperCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
String toLowerCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为小写。

   c. 与正则表达式相关的方法

返回值类型 函数名 功能
String matches(String regex)  
String replaceAll(String regex,String replacement) 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
String replaceFirst(String regex,String replacement) 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
String[] split(String regex) 根据给定正则表达式的匹配拆分此字符串。
String trim() 返回字符串的副本,忽略前导空白和尾部空白。
String replace(char oldchar,char newchar) 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
 1     public static void main(String[] args) {
 2 //      去除字符串的前导空白和尾部空白
 3         String str = " abc ed f ";
 4         System.out.println(str);
 5         System.out.println(str.trim());
 6 //      将字符串用空白字符分割开来
 7         String[] strArray = str.split("\\s+");
 8         System.out.println(strArray.length);
 9         for(String s:strArray){
10             System.out.println(s);
11         }
12     }

运行结果:

技术分享

 

 

技术分享

2. 题外话

   a. String对象一旦创建不可改变,而StringBuilder和StringBuffer是可变的,这就表示它们创建后仍可以修改他们的值;StringBuffer是synchronized的,它是线程安全的,但是比StringBuilder慢,如无安全要求,推荐使用StringBuilder。

  b. Java中字符串的连接是用“+”来实现的,此操作的过程是通过StringBuilder或StringBuffer类及它们的append方法实现。

  c. 将字符串转换成日期

1 String str = "Fri 17,2013";
2 Date date = new SimpleDateFormat("MMM d,yy", Locale.ENGLISH).parse(str);
3 System.out.println(date);

 

 

      

    

Java-String类学习笔记