写在前面
今天的这道题,《交替合并字符串》,是针对两个字符串组合的一道题目。
在之前我们做过拆分,也做过拆分并组合,下面就一起来看看怎么直接组合两个字符串吧。
题目解读
根据本题的描述来看,是有两个字符串,最后的结果是想要将两个字符串合并在一起,合并规则是隔位插入字符。
多出来的字符紧跟在字符串最后即可。
了解清楚题目,下面我们来说一下解题思路。
我们可以直接使用StringBuilder中的insert方法来直接插入,在这个过程中我们就只需要提供插入的字符,和插入的位置即可。
当然了,还是通过循环才可以,每次循环都越过一位来插入,保证是在奇数位下标索引下插入字符。
下面就来看一下代码的编写吧。
代码实现
本次代码如下所示,大家可以自行参考一下。
public class Solution { public static void main(String[] args) { Solution solution = new Solution(); System.out.println(solution.mergeAlternately("abc", "pqr")); System.out.println(solution.mergeAlternately("abcd", "pq")); } public String mergeAlternately(String word1, String word2) { StringBuilder stringBuilder = new StringBuilder(word1); int index = -1; for (int i = 1; i < stringBuilder.length(); i = i + 2) { if(++index < word2.length()){ stringBuilder.insert(i, word2.charAt(index)); } } if(index < word2.length() - 1){ stringBuilder.append(word2.substring(index + 1)); } return stringBuilder.toString(); } }
代码执行结果
本次的代码执行结果很一般,但总算是解决了,这道题要是自己来拼接的话,还能提升一下效率。
其他思路
其他思路就是拼接字符的地方不使用Java提供的方法来插入,自行实现拼接应该会更好一些。
总结
本道题主要考察对多个字符串拼接的掌握程度,只要熟悉如何定位字符串中的每一个字符位置就可以解出这道题了。