摘要:本文主要介绍了JAVA语言的String类的常用方法,通过实际的案例,让我们从中学到String类的精髓所在,让我们在平时JAVA语言的String类的常用方法这条路上走得更远,更加熟练的完成这些代码。
Java String类是我们常常用的一个类,但是天天在用,也没管过。
今天就来看看哪些是常用方法,然后了解一下其大概实现
然后希望达到的效果是:
自从看了我的这个字符串类,让你忘了你的她(他)。
关于字符串函数(split、join、indexOf、substring),这些常用的方法可参考下链接;虽然总结的是js的,但是一样的,join是java 1.8d的
字符串函数(split、join、indexOf、substring)
估计看到那么多代码,新手都不想看了,先给个概览图先,如下:

[java] view plain copy
1. public final class String implements java.io.Serializable, Comparable<String>, CharSequence {
2. /**
3. * The value is used for character storage.
4. */
5. private final char value[];
6. ...
7. ...
8. ...
9. public int length() {
10. return value.length;//字符串长度就是这么来的,数组的长度。这下带不带括号的问题就明了啦.
11. }
12.
13. public boolean isEmpty() {
14. return value.length == 0;
15. }
16.
17. public char charAt(int index) {
18. if ((index < 0) || (index >= value.length)) {
19. throw new StringIndexOutOfBoundsException(index);
20. }
21. return value[index];
22. }
23.
24. //"AAA"和"aaa" 走这个方法的返回结果是false
25. public boolean equals(Object anObject) {
26. //内部实现就是,先判断类型,再判断数组长度,相等了再继续
27. //循环2个数组,逐个比较,不等就返回false,要么最后返回true。
28. //新手注意:ss.equals("AAA");//ss可能为null。
29. // "AAA".equals(ss);//正确姿势。
30. }
31.
32. //"AAA"和"aaa" 走这个方法的返回结果是true
33. public boolean equalsIgnoreCase(String anotherString) {
34. //内部实现判断不等null,长度相等,再继续
35. //也是循环2个数组,先都转大写,比较之后相等,就继续下次循环
36. //要是意外不等,再都转小写,再比较,都失败的话,就不等啦。
37. }
38.
39. //是否以prefix 开头
40. public boolean startsWith(String prefix, int toffset) {
41. //都是循环数组挨个比较
42. }
43. public boolean startsWith(String prefix) {
44. return startsWith(prefix, 0);
45. }
46. public boolean endsWith(String suffix) {
47. return startsWith(suffix, value.length - suffix.value.length);
48. }
49.
50. //返回在字符串中的位置,也就是数组的下标
51. public int indexOf(String str) {
52. return indexOf(str, 0);
53. }
54. public int lastIndexOf(String str) {
55. return lastIndexOf(str, value.length);
56. }
57.
58. //字符串截取
59. public String substring(int beginIndex) {
60. }
61.
62. //在原字符串后面串联上个str
63. public String concat(String str) {
64. }
65.
66. //替换字符串中的值 oldChar--->newChar
67. public String replace(char oldChar, char newChar) {
68. }
69.
70. //是否包含 s
71. public boolean contains(CharSequence s) {
72. }
73.
74. //将字符串以regex为标志,截取,返回个数组,不含标志位regex
75. public String[] split(String regex) {
76. }
77.
78. //全部转小写
79. public String toLowerCase() {
80. return toLowerCase(Locale.getDefault());
81. }
82.
83. //全部转大写
84. public String toUpperCase() {
85. return toUpperCase(Locale.getDefault());
86. }
87.
88. //去掉首尾的多余空格
89. public String trim() {
90. }
91.
92. //static 直接类调用的方法
93. // 将几个字符串合并成一个返回
94. public static String join(CharSequence delimiter, CharSequence... elements) {
95. } //Java 1.8 才有的这个方法,
96.
97. //有很多重载(方法名相同,参数列表不同)
98. //参数可以是几个基本数据类型:int,long,float,double,char,boolean,
99. //基本数据类型是没有方法可言的,所以对应的封装类型才有方法,Integer,Long,Float,Double
100. public static String valueOf(Object obj) {
101. return (obj == null) ? "null" : obj.toString();
102. }
103. public static String valueOf(long l) {
104. return Long.toString(l);
105. }
106. ...
107. public static String valueOf(char c) {
108. char data[] = {c};
109. return new String(data, true);
110. }
111. public static String valueOf(boolean b) {
112. return b ? "true" : "false";
113. }
114.
115. }
[java] view plain copy
1. //正儿八经的String的equal方法如下:就是挨个比较2个数组的值而已。
2. public boolean equals(Object anObject) {
3. if (this == anObject) {
4. return true;
5. }
6. if (anObject instanceof String) {
7. String anotherString = (String)anObject;
8. int n = value.length;
9. if (n == anotherString.value.length) {
10. char v1[] = value;
11. char v2[] = anotherString.value;
12. int i = 0;
13. while (n-- != 0) {
14. if (v1[i] != v2[i])
15. return false;
16. i++;
17. }
18. return true;
19. }
20. }
21. return false;
22. }本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言JAVA频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号