iOS自定义键盘开发:如何在if语句中过滤含空字符串的String数组
解决自定义键盘数组过滤问题:在if语句中移除最后一个有效字符
我明白你在自定义键盘开发中遇到的数组过滤痛点了——你需要在if语句里完成逻辑,核心是精准移除数组里最后一个非空的字符元素,而不是简单过滤掉空字符串。下面针对常见的iOS(Swift)和Android(Java)场景给出解决方案:
Swift 实现示例
假设你的字符数组是这样的:
var keyChars: [String] = ["a", "b", "", "c"]
你可以直接在if语句里通过索引定位来实现需求:
// 直接在if条件中判断是否存在最后一个非空元素 if let lastNonEmptyIndex = keyChars.lastIndex(where: { !$0.isEmpty }) { // 移除这个最后一个有效字符元素 keyChars.remove(at: lastNonEmptyIndex) }
逻辑说明
lastIndex(where: { !$0.isEmpty })会从数组末尾往前找第一个非空字符串的索引,if语句会自动判断这个索引是否存在(也就是数组里有可移除的有效字符)- 如果条件成立,直接移除原数组中该索引的元素,完全不会触碰空字符串,精准满足你的需求
Java 实现示例
如果是Android端的自定义键盘开发,代码逻辑类似:
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class KeyboardDemo { public static void main(String[] args) { List<String> keyChars = new ArrayList<>(Arrays.asList("a", "b", "", "c")); int lastNonEmptyIndex = -1; // 从后往前遍历找到最后一个非空元素的索引 for (int i = keyChars.size() - 1; i >= 0; i--) { if (!keyChars.get(i).isEmpty()) { lastNonEmptyIndex = i; break; } } // 在if语句中判断并移除目标元素 if (lastNonEmptyIndex != -1) { keyChars.remove(lastNonEmptyIndex); } } }
这样的逻辑完全在if语句的判断流程内完成,既满足了你“仅在if语句中过滤处理”的要求,又精准移除了最后一个有效字符,不会误删空字符串。
内容的提问来源于stack exchange,提问作者Sandrika Janjghava
相关产品推荐
相关产品推荐

