String类

  String是引用数据类型;字符串是String类的对象

 

String类的构造方法

  共有13种重载方式,这里只示例常用的几个

  String():创建一个空字符串

  String(String original):新建一个字符串作为指定字符串的副本

String(char[] value):根据字符数组构造一个新字符串

String(byte[] tytes):通过转换指定的字节数组新建一个字符串

 

String类的方法

  只示例常用的几种,详情请见API

  字符串长度

    length():该方法返回字符串中有效字符的个数,返回值是int型

字符串比较

==运算符:比较两个引用是否指向同一个对象,返回值是boolean型

equals()方法:比较两个字符串中的内容是否相同,返回值是boolean型

    startsWith(String prefix):判断此字符串是否以指定的前缀prefix开头,返回值是boolean型

    endsWith(String suffix):判断当前字符串是否以字符串suffix为后缀,返回值是boolean型

    equalsIgnoreCase(String anotherString):将此String与另一个anotherString比较,不考虑大小写,返回值是boolean型

    compareTo(String anotherString):根据ASCII码比较字符串anoterString和当前字符串的大小,返回值是int型

 

字符串搜索

    搜索char字符类型

    indexOf(int ch):查找字符ch在当前字符串中第一次出现处的索引,没有出现返回-1,返回值是int型

    lastIndexOf(int ch):查找字符ch在当前字符串中最后一次出现的索引,没有出现返回-1,返回值是int型

    indexOf(int ch , int fromIndex):查找字符ch在当前字符串中第一次出现处的索引,从指定的索引开始搜索,返回值是int型

搜索String字符串类型

indexOf(String str):查找字符串str在当前字符串中第一次出现的索引,没有出现返回-1,返回值是int型

lastIndexOf(String str):查找字符串str在当前字符串中最后一次出现的索引,没有出现返回-1,返回值是int型

    indexOf(String str , int fromIndex):查找字符串str在当前字符串中第一次出现处的索引,从指定的索引开始搜索,返回值是int型  

字符串提取

    charAt(int index):提取指定索引index位置的char值,返回值是char型

substring(int index):提取从指定索引index位置开始的字符串部分,获得一个新的字符串(当前字符串的子串),返回值是String型

substring(int begin, int end):提取从指定索引index到end位置结束的字符串部分,获得一个新的字符串(当前字符串的子串),返回值是String型

    concat(String str):用于连接两个字符串,将指定字符串连接到此字符串的结尾,返回值是String型

    replace(char oldChar, char newChar):将字符串中出现的oldChar字符替换成newChar字符,返回值是String型

    replaceAll(String regex, String replacement):将字符串中出现的regex字符串替换成replacement字符串,返回值是String型

    String trim():返回字符串的副本,忽略前导空白和尾部空白,返回值是String型

 

 

  更改字符串的大小写

    toUpperCase():返回当前字符串的全大写形式,返回值是String型

    toLowerCase():返回当前字符串的全小写形式,返回值是String型

字符串的数据格式转换

    getBytes():将当前字符串转化成byte型的字节数组(即字符串在内存中保存的最原始的二进制形态),返回值是一个byte[]数组

    toCharArray():将当前字符串转换为char型的字符数组,返回值是char[]数组

字符串的数据类型转换

Object类型转String类型

String s = (String) o;  强制转换

String s = String.valueOf(o);  使用String.valueOf方法

 

String类型转int类型

使用包装器类Integer.parseInt()方法 

代码示例

 

1 package summary2;
 2 
 3 //String类
 4 class Test
 5 {
 6     void test1 ()
 7     {
 8         String s1;                        //声明一个String类型属性    
 9         String s2="张三",s3="18岁";        //同时声明多个属性并赋初值
10         s1 = "学习Java中的String类";        //声明后赋值
11         String s = s2.concat(s3);        //用contcat方法连接两个字符串
12         System.out.println(s+s1);        //打印两个字符串输出三个字段
13     }
14     void test2 ()
15     {
16         String bi1 = new String("String");        //创建一个String对象并赋值
17         String bi2 = new String("String");        //创建一个String对象并赋值
18         boolean b1 = bi1==bi2;                    //比较的是虚地址,返回false
19         boolean b2 = bi1.equals(bi2);            //比较的是对象内容,返回true
20         System.out.println("用==比较的是"+bi1+"和"+bi2+"的虚地址:结果返回"+b1);
21         System.out.println("用equals比较的是"+bi1+"和"+bi2+"内容:结果返回"+b2);
22     }
23     void test3 ()
24     {
25         char[] ch = {'t','i','m','e'};        //声明一个字符数组并赋值
26         byte[] by = {-60,-6,-70,-61};        //声明一个字节数组、存放的是字符编码    
27         String str1 = new String();            //创建一个空的字符串
28         String str2 = new String(ch);        //根据指定字符数组构造一个新字符串
29         String str3 = new String(by);        //转换指定的字节数组新建一个字符串
30         String str4 = new String(str2);        //利用指定String对象创建新的副本
31         System.out.println(str1+str2+str3+str4);
32     }
33     void test4 ()
34     {
35         String s = "2017年Jack刚满17岁";                    //注意字符串的下标是从0开始、索引最大值=长度-1
36         System.out.println(s.length());                 //获取字符串长度:14
37         System.out.println(s.charAt(13));                //取得最后一个索引位置13的值:岁
38         System.out.println(s.substring(0,5));            //截取下标0-4的值:2017年
39         System.out.println(s.substring(5));                //截取下标8以后的值:Jack刚满18岁
40         System.out.println(s.replace('7','8'));            //替换字符串中的指定字节、输出新的副本
41         System.out.println(s.replaceAll("Jack","张三"));    //替换字符串中的指定字符
42     }
43     void test5 ()
44     {
45         String s = "English";
46         byte[] b = s.getBytes();        //将当前字符串转化成byte型的字节数组
47         char[] c = s.toCharArray();        //将当前字符串转换为char型的字符数组
48         System.out.println(b);
49         System.out.println(c);    
50     }
51     void test6 ()
52     {
53         Object o = 931;                    //创建一个Object类,存放int型数据
54         String s = String.valueOf(o);    //Object转换成String型,使用valueOf方法
55         int i = Integer.parseInt(s);     //String转int型,使用包装器类的方法
56         System.out.println(i);
57     }
58 }
59 public class StringClass 
60 {
61     public static void main(String[] args)
62     {
63         Test T = new Test();
64         T.test1();    //String的声明和赋值
65         T.test2();    //String的比较
66         T.test3();    //String的构造方法
67         T.test4();    //String的长度、字符获取
68         T.test5();    //String的数据格式转换
69         T.test6();    //String的数据类型转换
70     }
71 }