如何逐字合并字符串列表?

这是一道面试题。输入是一个 ArrayList。我的第一个想法是将其转换为二维矩阵,然后合并每一列,但这似乎不是正确的答案。有没有其他方法可以解决这个问题?谢谢。


输入


"abc", 

"bef", 

"g"

预期输出(第一列,abg,然后是第二列,be最后是第三列,cf):


"abgbecf"


PIPIONE
浏览 205回答 3
3回答

慕莱坞森

一种简单的方法是使用 StringBuilder:StringBuilder sb = new StringBuilder()for(String str : arrList){    sb.append(str)}return sb.toString()

侃侃尔雅

我想我会简单地遍历列表,将下一个字符从原始字符串中拉出并将其添加到新的组合字符串中,直到添加最长字符串的最后一个字母。boolean keepGoing = true;int index = 0;StringBuilder result = new StringBuilder();while(keepGoing) {&nbsp; &nbsp; keepGoing = false;&nbsp; &nbsp; for(int i=0; i < stringList.size(); i++) {&nbsp; &nbsp; &nbsp; &nbsp; if(stringList.get(i).length() > index) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result.append(stringList.get(i).charAt(index));&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; keepGoing = true;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; index++;}System.out.println("result: " + result);可能有更优雅的解决方案,但这是我要开始的,然后根据需要进行改进。

红颜莎娜

像这样的东西会起作用:StringBuilder sb = new StringBuilder()int max = 0;for(String str : arrList){&nbsp; &nbsp; if(str.length > max) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; max = str.length;&nbsp; &nbsp; }}for(int i = 0; i < max; i++){&nbsp; &nbsp; for(String str : arrList){&nbsp; &nbsp; &nbsp; &nbsp; if(str.length > i){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.append(str.charAt(i));&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}return sb.toString();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java