JAVA语言-String类的常用方法
金延鑫 2018-04-04 来源 : 阅读 1389 评论 0

摘要:本文主要介绍了JAVA语言的String类的常用方法,通过实际的案例,让我们从中学到String类的精髓所在,让我们在平时JAVA语言的String类的常用方法这条路上走得更远,更加熟练的完成这些代码。

Java String类是我们常常用的一个类,但是天天在用,也没管过。
今天就来看看哪些是常用方法,然后了解一下其大概实现
然后希望达到的效果是:
自从看了我的这个字符串类,让你忘了你的她(他)。

关于字符串函数(split、join、indexOf、substring),这些常用的方法可参考下链接;虽然总结的是js的,但是一样的,join是java 1.8d的

字符串函数(split、join、indexOf、substring)

估计看到那么多代码,新手都不想看了,先给个概览图先,如下:

JAVA语言-String类的常用方法

[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
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论
本文作者 联系TA

擅长与学生或家长及时有效沟通

  • 10
    文章
  • 7867
    人气
  • 95%
    受欢迎度

已有19人表明态度,95%喜欢该老师!

进入TA的空间
求职秘籍 直通车
  • 索取资料 索取资料 索取资料
  • 答疑解惑 答疑解惑 答疑解惑
  • 技术交流 技术交流 技术交流
  • 职业测评 职业测评 职业测评
  • 面试技巧 面试技巧 面试技巧
  • 高薪秘笈 高薪秘笈 高薪秘笈
TA的其他文章 更多>>
JAVA语言-类和对象
经验技巧 100% 的用户喜欢
匿名对象,内部类,静态内部类,static关键字-JAVA从入门到精通
经验技巧 0% 的用户喜欢
JAVA语言-volatile
经验技巧 0% 的用户喜欢
JAVA从入门到精通-抽象类
经验技巧 0% 的用户喜欢
JAVA语言程序设计-单Client与Server的单向通信和双向通信
经验技巧 0% 的用户喜欢
其他海同师资 更多>>
吕益平
吕益平 联系TA
熟悉企业软件开发的产品设计及开发
孔庆琦
孔庆琦 联系TA
对MVC模式和三层架构有深入的研究
周鸣君
周鸣君 联系TA
擅长Hadoop/Spark大数据技术
范佺菁
范佺菁 联系TA
擅长Java语言,只有合理的安排和管理时间你才能做得更多,行得更远!
程光淼
程光淼 联系TA
精通C、C++等语言、智能芯片开发
经验技巧30天热搜词 更多>>

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程