您的位置:首页 > 职场人生

黑马程序员----JAVA基础之String类

2013-03-04 23:05 579 查看



------ android培训java培训、期待与您交流!
----------

String(字符串)类

(1)有很多字符组成的字符序列叫做字符串.

(2)创建字符串的对象

A:直接给字符串对象赋值

String s = "Hello";

B:通过构造方法传递字节数组参数

byte[] bys = {97,98,99,100,101};

String s = new String(bys);

String s = new String(bys,1,3); //从1开始,取得3个

C:通过构造方法传递字符数组参数

char[] chs = {'h','e','l','l','o'};

String s = new String(chs);

String s = new String(chs,1,3);

面试题:

String s1 = "haha";

String s2 = "haha";

sop(s1==s2);

sop(s1.equals(s2));

String s3 = new String("haha");

sop(s1==s3);

sop(s1.equals(s3));

==和equals什么时候使用:

1:比较基本数据类型的时候使用 ==

2:比较引用数据类型的时候用

== 表示比较的是对象的地址值

equals 没有重写Object的方法,比较的是地址值.

重写了Object的方法,比较的是什么,根据重写来定.

(3)字符串的常用方法

String str1 = "abcd";

String str2 = "abcdabcd";

1.length():求字符串的长度

int len = str1.length();

System.out.println("字符串的长度:"+len);

运行结果:

字符串的长度:4

2.charAt(int index):取字符串中指定下标的一个元素

for (int i=0;i<len;i++){

char c =str1.charAt(i);

System.out.println("下标"+i+"的值:"+c);

}

运行结果:

下标0的值:a

下标1的值:b

下标2的值:c

下标3的值:d

3. codePointAt(int index):index 处字符的代码点值

for (int i=0;i<len;i++){

int k = str1.codePointAt(i);

System.out.println("下标"+i+"的值:"+k);

}

运行结果:

下标0的值:97

下标1的值:98

下标2的值:99

下标3的值:100

4. codePointBefore(int index):给定索引前面的 Unicode 代码点

int k = str1.codePointBefore(0);

System.out.println("下标"+0+"之前的值:"+k);

java.lang.StringIndexOutOfBoundsException

int k = str1.codePointBefore(1);

System.out.println("下标"+1+"之前的值:"+k);

运行结果:

下标1之前的值:97

int k = str1.codePointBefore(2);

System.out.println("下标"+2+"之前的值:"+k);

运行结果:

下标2之前的值:98

int k = str1.codePointBefore(3);

System.out.println("下标"+3+"之前的值:"+k);

运行结果:

下标3之前的值:99

int k = str1.codePointBefore(len);

System.out.println("下标"+len+"之前的值:"+k);

运行结果:

下标4之前的值:100

5. codePointCount(int beginIndex, int endIndex): 返回此 String 的指定文本范围中的 Unicode 代码点数

int k = str1.codePointCount(0, len);

System.out.println("0到"+len+"之前的值:"+k);

运行结果:

0到4之前的值:4

int k = str1.codePointCount(0, len-2);

System.out.println("0到"+(len-2)+"之前的值:"+k);

运行结果:

0到2之前的值:2

6. compareTo(String anotherString)

先看下面API文档的介绍:

int i = str1.compareTo("abd");

System.out.println(i);

int k = str1.compareTo("abf");

System.out.println(k);

int t = "abd".compareTo(str1);

System.out.println(t);

int j = "abf".compareTo(str1);

System.out.println(j);

int g = str1.compareTo(str1);

System.out.println(g);

int f = str1.compareTo("abcdefg");

System.out.println(f);

int r = "abcdefg".compareTo(str1);

System.out.println(r);

运行结果:

-1

-3

1

3

0

-3

3

7. compareToIgnoreCase(String str)

先看下面API文档的介绍:

int i = str1.compareToIgnoreCase("ABCD");

System.out.println(i);

int f = str1.compareTo("ABCD");

System.out.println(f);

运行结果:

0

32

8. concat(String str):将指定字符串连接到此字符串的结尾

String s1 = str1.concat("ABCD");

System.out.println(s1);

String s2 = str.concat("");

System.out.println(s2);

运行结果:

abcdABCD

abcd

9. copyValueOf(char[] data):返回指定数组中表示该字符序列的 String

静态方法

char[] data = {'a','b','c','d','e','f'};

String s1 = String.copyValueOf(data);

System.out.println(s1);

运行结果:

abcdef

10. copyValueOf(char[] data, int offset, int count):返回指定数组中表示该字符序列的 String

char[] data = {'a','b','c','d','e','f'};

String s1 = String.copyValueOf(data,3,3);

System.out.println(s1);

运行结果:

def

11. endsWith(String suffix):测试此字符串是否以指定的后缀结束

boolean isd = str1.endsWith("d");

System.out.println("此字符串是否以d结尾:"+isd);

boolean isf = str1.endsWith("f");

System.out.println("此字符串是否以f结尾:"+isf);

运行结果:

此字符串是否以d结尾:true

此字符串是否以f结尾:false

而与endsWith(String suffix)类似的方法有下面两个:

startsWith(String prefix)

startsWith(String prefix, int toffset)

这两个的方法是测试此字符串是否以指定的后缀开始

12. equals(Object anObject):将此字符串与指定的对象比较

boolean iseq1 = str1.equals("abcd");

System.out.println(iseq1);

boolean iseq2 = str1.equals("abc");

System.out.println(iseq2);

运行结果:

true

false

13. equalsIgnoreCase(String anotherString):将此 String 与另一个 String 比较,不考虑大小写

boolean iseq1 = str1.equalsIgnoreCase("ABCD");

System.out.println(iseq1);

运行结果:

true

14. getBytes():将字符串转化为字节数组

byte[] data = str1.getBytes();

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

System.out.print(data[i]+"\t");

}

运行结果:

97 98 99 100

15. indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引

int t = str1.indexOf(96);

System.out.println(t);

int i = str1.indexOf(97);

System.out.println(i);

int k = str1.indexOf(99);

System.out.println(k);

int f = str1.indexOf(101);

System.out.println(f);

运行结果:

-1

0

2

-1

16. indexOf(int ch, int fromIndex):返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索

int i = str2.indexOf(97, 3);

System.out.println(i);

int t = str2.indexOf(99, 1);

System.out.println(t);

int k = str2.indexOf(97,5);

System.out.println(k);

运行结果:

4

2

-1

17. indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引

int t = str2.indexOf("a");

System.out.println(t);

int i = str2.indexOf("c");

System.out.println(i);

int k = str2.indexOf("d");

System.out.println(k);

int f = str2.indexOf("e");

System.out.println(f);

运行结果:

2

3

-1

18. indexOf(String str, int fromIndex):返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始

int i = str2.indexOf("a", 3);

System.out.println(i);

int t = str2.indexOf("c", 1);

System.out.println(t);

int k = str2.indexOf("a",5);

System.out.println(k);

运行结果:

2

-1

19. isEmpty():当且仅当 length() 为 0 时返回 true

boolean isempty1 = str1.isEmpty();

System.out.println(isempty1);

boolean isempty2 = "".isEmpty();

System.out.println(isempty2);

运行结果:

false

true

下面几个方法与上面indexOf()是相对应的,只不过是返回最后一次出现的索引

20. lastIndexOf(int ch)

int i = str2.lastIndexOf(97);

System.out.println(i);

int k = str2.lastIndexOf(101);

System.out.println(k);

运行结果:

4

-1

lastIndexOf(int ch, int fromIndex)

lastIndexOf(String str)

lastIndexOf(String str, int fromIndex)

21. substring(int beginIndex):返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾

String s1 = str2.substring(4);

System.out.println(s1);

String s2 = str2.substring(2);

System.out.println(s2);

运行结果:

abcd

cdabcd

22. substring(int beginIndex, int endIndex):返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符

String s1 = str2.substring(4,7);

System.out.println(s1);

String s2 = str2.substring(2,7);

System.out.println(s2);

运行结果:

abc

cdabc

23. toCharArray():将此字符串转换为一个新的字符数组

char[] c = str1.toCharArray();

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

System.out.print(c[i]+"\t");

}

运行结果:

a b c d

24. toLowerCase():将此 String 中的所有字符都转换为小写

String str3 = "ABCDABCD";

String str4 = "AcbdABcD";

String s1 = str3.toLowerCase();

System.out.println(s1);

String s2 = str4.toLowerCase();

System.out.println(s2);

运行结果:

abcdabcd

acbdabcd


------ android培训java培训、期待与您交流!
----------

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: