第五章、JavaAPI

 

一、String类的初始化

 

String类的初始化操作

1. 字符串常量直接赋值

2. String类的构造方法

     String():空参数构造方法,创建一个String类对象,内容为空

     String(String s) :创建一个String 类对象,指定一个字符串内容

     tring(char [] chs) 创建一个String类对象 ,指定一个字符数组作为内容

package cn.itcast.chapter05.example01;

/**
 * String类构造方法的使用
 */
public class Example01 {
	public static void main(String[] args) throws Exception {
		// 创建一个空的字符串
		String str1 = new String();
		// 创建一个内容为abcd的字符串
		String str2 = new String("abcd");
		// 创建一个内容为字符数组的字符串
		char[] charArray = new char[] { 'D', 'E', 'F' };
		String str3 = new String(charArray);
		System.out.println("a" + str1 + "b");
		System.out.println(str2);
		System.out.println(str3);
	}
}
ab
abcd
DEF

 

 

二、String类的常见操作

 

1、字符串中单个字符查找

1) public int indexOf(int ch/String str)

    用于查找当前字符串中字符或子串,返回字符或子串在当前字符串中从左边起首次出现的位置,若没有出现则返回-1。
2)  public int indexOf(int ch/String str, int fromIndex)

    改方法与第一种类似,区别在于该方法从fromIndex位置向后查找。
3) public int lastIndexOf(int ch/String str)

    该方法与第一种类似,区别在于该方法从字符串的末尾位置向前查找。
4) public int lastIndexOf(int ch/String str, int fromIndex)

     该方法与第二种方法类似,区别于该方法从fromIndex位置向前查找。 

String str = "I am a good student";
int a = str.indexOf('a');  //a = 2
int b = str.indexOf("good");  //b = 7
int c = str.indexOf("w",2);  //c = -1
int d = str.lastIndexOf("a");  //d = 5
int e = str.lastIndexOf("a",3)  ;//e = 2

 

2、获取指定索引位置的字符

    使用charAt()方法可将指定索引处的字符返回。

String str = "hello word";
char mychar =  str.charAt(5);  // mychar的结果是w

 

3、获取子字符串

   通过String类的substring()方法可对字符串进行截取。这些方法的共同点就是都利用字符串的下标进行截取,且应明确字符串下标是从0开始的。在字符串中空格占用一个索引位置。

1)substring(int beginIndex)

    该方法返回的是从指定的索引位置开始截取知道该字符串结尾的子串。

String str = "Hello word";
String substr = str.substring(3); //获取字符串,此时substr值为lo word

2)substring(int beginIndex,  int endIndex)

    beginIndex : 开始截取子字符串的索引位置

    endIndex:子字符串在整个字符串中的结束位置

 String str = "Hello word";
 String substr = str.substring(0,3); //substr的值为hel

 

4、字符串连接

       //将参数中的字符串str连接到当前字符串的后面,效果等价于"+"。       

       public String concat(String str)
       String str = "aa".concat("bb").concat("cc");  //相当于String str = "aa"+"bb"+"cc";

 

5、去除字符串两端空格

    String trim()

    截去字符串两端的空格,但对于中间的空格不处理。

String str = " a sd ";
String str1 = str.trim();
int a = str.length();//a = 6
int b = str1.length();//b = 4 

 

6、将字符串中多余的空格用一个空格代替

  String ss=string.replaceAll(" +"," ");

  return ss;

 

7、字符串替换

    replace()方法可实现将指定的字符或字符串替换成新的字符或字符串

   oldChar:要替换的字符或字符串

   newChar:用于替换原来字符串的内容

如果要替换的字符oldChar在字符串中重复出现多次,replace()方法会将所有oldChar全部替换成newChar。需要注意的是,要替换的字符oldChar的大小写要与原字符串中字符的大小写保持一致。

String str= "address";
String newstr = str.replace("a", "A");// newstr的值为Address

 

8、判断字符串的开始与结尾

    startsWith()方法与endsWith()方法分别用于判断字符串是否以指定的内容开始或结束。这两个方法的返回值都为boolean类型。

   1)startsWith(String prefix) 

      该方法用于判断当前字符串对象的前缀是否是参数指定的字符串。

   2)endsWith(String suffix) 

     该方法用于判断当前字符串是否以给定的子字符串结束

 

9、判断字符串是否相等

    1)equals(String otherstr)

    如果两个字符串具有相同的字符和长度,则使用equals()方法比较时,返回true。同时equals()方法比较时区分大小写。

   2)equalsIgnoreCase(String otherstr)

    equalsIgnoreCase()方法与equals()类型,不过在比较时忽略了大小写。

 

10、按字典顺序比较两个字符串

int x=string1.compareTo(string2);

     如果得到的x大于0,则string1大于string2;

     如果得到的x小于0,则string1小于string2;

     如果得到的x等于0,则string1=string2;

 

11、全部字母的大小写转换

1)  public String toLowerCase()

     返回将当前字符串中所有字符转换成小写后的新串
2)  public String toUpperCase()

    返回将当前字符串中所有字符转换成大写后的新串


String str = new String("asDF");
String str1 = str.toLowerCase();  //str1 = "asdf"
String str2 = str.toUpperCase();   //str2 = "ASDF" 

 

12、把每个单词的首字母改为大写

先将字符串按空格转化成字符串数组,每一个数组的元素存放一个单词,然后截取这个单词的首字母,将其改为大写形式

         string[] s=string.split(" ");

         String str=new String();

          for(int i=0;i<s.length;i++)

         {

                   str+=s[i].substring(0,1).toUpperCase()+s[i]+" ";

        }

 

 

13、字符串分割

    使用split()方法可以使字符串按指定的分隔字符或字符串对内容进行分割,并将分割后的结果存放在字符数组中。

 str.split(String sign);

sign为分割字符串的分割符,也可以使用正则表达式。

没有统一的对字符串进行分割的符号,如果想定义多个分割符,可使用符号“|”。例如,“,|=”表示分割符分别为“,”和“=”。

 str.split(String sign, in limit);

该方法可根据给定的分割符对字符串进行拆分,并限定拆分的次数

 

 

三、StringBuffer类

 

1、构造方法

1)StringBuffer()               无参构造方法,初始容量为 16 个字符;

 StringBuffer sb = new StringBuffer(); // 定义一个字符串缓冲区

 2)StringBuffer(int capacity)   指定容量的字符串缓冲区对象

 3)StringBuffer(String str)      指定字符串内容的字符串缓冲区对象 

4)StringBuffer(CharSequence seq)

 

2、StringBuffer的添加功能 

1)StringBuffer append(String str):           

      可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
 2) StringBuffer insert(int offset,String str)   

      在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身
 

3、StringBuffer的删除功能

1)StringBuffer deleteCharAt(int index):

      删除指定位置的字符,并返回本身

2) StringBuffer delete(int start,int end):

     删除从指定位置开始指定位置结束的内容,并返回本身
 

4、 StringBuffer的替换功能

      StringBuffer replace(int start,int end,String str):    

      从start开始到end用str替换

5、 StringBuffer的反转功能

      StringBuffer reverse():    字符串反转

6、StringBuffer的截取功能

     String substring(int start):            从指定位置截取到末尾
     String substring(int start,int end):    截取从指定位置开始到结束位置,包括开始位置,

      注意:返回值类型不再是StringBuffer本身而是string类型。
 

 

四、StringBuffer和String的相互转换

 

1、String ----> StringBuffer

a:通过构造方法
b:通过append()方法

2、StringBuffer ---> String

 a: 使用substring方法
 b:通过构造方法
 c:通过toString()方法

 

3、StringBuffer和Stringbuilder的区别

stringbuffer:线程安全

stringbuilder:线程非安全,执行速度快。

 

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐