Apex如何将List<String>合并为完整字符串?代码实现求助
解决Apex List转目标字符串的问题
你已经完成了字符转换的核心逻辑,现在只差最后一步把处理后的字符列表拼接成完整字符串啦!当前代码仅输出了List
问题分析
你的stringCharacters列表处理后已经包含了所有需要的字符(包括处理后的数字、字母和原字符串中的空格),比如你提到的(1,i,n,d,i,a,,1,2,3)里的空元素其实是原字符串空格拆分后的表现,我们只需要把这些元素无缝拼接起来,就能得到"1india 123"这样的结果。
修改方案
使用Apex自带的String.join()方法,它可以将List中的元素按指定分隔符拼接成字符串。这里我们用空字符串作为分隔符,就能把所有字符连在一起,完全保留原有顺序和空格。
修改后的完整代码
public class Assign2{ public String testFunction(String str ,integer num){ // 修改返回类型为String,方便获取结果 integer rem,temp = 0; integer sumOfDigit = 0; List<String> stringCharacters = new List<String>(); stringCharacters = str.split(''); System.debug('stringCharacters::'+stringCharacters); for(integer i=0; i<stringCharacters.size(); i++){ if(stringCharacters[i].isNumeric()){ temp = Integer.valueOf(stringCharacters[i]); rem = temp + num; sumOfDigit = math.mod(rem,10); stringCharacters[i] = String.valueOf(sumOfDigit); // 用String.valueOf更规范 } } // 关键步骤:将List<String>拼接成完整目标字符串 String result = String.join(stringCharacters, ''); System.debug('最终结果::'+result); return result; // 返回结果,方便调用者直接使用 } }
调用示例
Assign2 obj = new Assign2(); String output = obj.testFunction('2india 234',9); System.debug(output); // 输出结果:1india 123
额外说明
String.join(stringCharacters, '')会依次拼接列表中所有元素,因为分隔符是空字符串,所以不会额外添加任何冗余字符,完美保留原有的空格和字符顺序。- 我把方法返回类型改成了
String,这样你调用时可以直接获取结果,而不用只在调试日志里查看。如果不需要返回值,也可以保持void类型,仅在方法内处理和输出结果即可。
内容的提问来源于stack exchange,提问作者Lavi__c
相关产品推荐
相关产品推荐

