Bootstrap

Java-String类学习笔记

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

1. String类中常用方法

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

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

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

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

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

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

返回值类型函数名功能
Stringmatches(String regex) 
StringreplaceAll(String regex,String replacement)使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
StringreplaceFirst(String regex,String replacement)使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
String[]split(String regex)根据给定正则表达式的匹配拆分此字符串。
Stringtrim()返回字符串的副本,忽略前导空白和尾部空白。
Stringreplace(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);

 

 

      

    

转载于:https://www.cnblogs.com/shouming/articles/6848759.html

;