首页 > 解决方案 > 如何以相反的顺序为字母数字字符返回字符数组,只有所有非字母数字字符需要保留原始位置

问题描述

我有一个问题

GIVEN 有一个字符串,需要调用一个 reverse 方法,以便它只为字母数字字符返回一个以相反顺序排列的字符数组,但是所有其他非字母数字字符需要保留其原始位置

做谷歌搜索后能够Implement解决Apex

除了1行代码我理解了代码,你能帮我理解在resultList中添加I和的意义吗?stringMap.get(I)

            public class assessment {
              public static List<String> reverseSpecialString(String input) {
                List<String> inputList = input.split('');
                Map<Integer,String> stringMap = new Map<Integer,String>();
                List<String> output = new List<String>();
                for (Integer i=0; i<inputList.size(); i++) {
                    String charac = inputList[i];
                    if(!charac.isAlphaNumeric()) {
                        stringMap.put(i,charac);
                    }else {
                        output.add(charac);
                    }
                }
                String finalString =  String.join(output,'');
                List<String> resultList = finalString.reverse().split('');
                for( Integer I : stringMap.keySet() ){
                    system.debug(I);
                    resultList.add(I,stringMap.get(I));
                }
                  return resultList;
              }  
            }

谢谢,卡罗琳

标签: salesforceapexforce.com

解决方案


推荐阅读