标签:子串 String indexOf StringBuilder 每日 参数 字符串 2022.2 Leetcode
评论代码分析(自己写的太烂了):
这个用户通过String的indexOf方法得到下标
int indexOf(int ch)
为什么形参是(int ch)呢?我以为是(char ch),既然不懂,就看源代码:
原来是得到char的Ascll码,然后调用
接下来这些就是indexOf查找相应子串的核心了。尝试看一下,没看懂,应该是技术还没到家,先不管他。
回到那个用户的代码
得到下标之后,对他进行判断,如果字符串中不包含该子串,通过indexOf得到的整形就是-1。这里的判断筛选是否存在子串。
之后创建StringBuilder对象,通过带参的构造方法得到一个StringBuilder对象
StringBuilder(String str)
构造一个初始化为指定字符串内容的字符串构建器。
题外话:
我们都知道,可变字符串有两种,一个是StringBuffer,一个是StringBuilder,因为StringBuffer才用了同步锁,所以在线程安全方面来说,我个人习惯来说都是会使用StringBuffer。
在看带参构造方法里面String的substring方法
给一个参数,截取就是从给的参数开始,到最后,这个子串。
给两个参数,就是截取从参数1到参数2之间(包含)的子串,这里通过substring得到了需要反转的子串,然后通过StringBuilder的带参构造得到了需要反转的StringBuilder对象,就可以直接通过StringBuilder的reverse()方法进行反转(怎么反转已经写好了)。
在然后通过StringBuilder的append()方法,将两个字符串拼接起来。
append()方法是将参数拼接到调用这个参数的StringBuilder对象后面,这样就完成了字符串的指定子串反转。
之后在调用StringBuilder的toString()方法将StringBuilder对象转换成String对象返回即可完成题目
标签:子串,String,indexOf,StringBuilder,每日,参数,字符串,2022.2,Leetcode 来源: https://blog.csdn.net/qq_32468603/article/details/122771575
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。