You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift:如何从字符串中提取特定规则的不重复单词数组?

嘿,我来帮你搞定这个提取特定单词数组的问题!咱们一步步拆解需求,解决你遇到的空格和大写逻辑的困扰:

解决方案:提取符合要求的单词数组

首先明确咱们的核心目标:从原始文本里挑出以大写"A"开头、不含换行、不重复的单词,最终整理成数组。下面是具体实现思路和代码示例(以Java为例,毕竟你提到了String类型,这是Java里常用的类型):

1. 先搞定文本清理与单词分割

你头疼的空格问题,其实可以用正则表达式一次性解决——把所有空白字符(包括连续空格、换行符\n)都当作分隔符,同时去掉文本首尾的多余空格:

String rawText = "你的原始文本内容,比如 Apple   Ant\nBanana Apple  \nApe";
// trim()去掉首尾空白,split("\\s+")用任意连续空白(空格/换行/制表符)分割
String[] allWords = rawText.trim().split("\\s+");

这一步做完,分割出来的单词自然不会包含换行符,因为换行已经被当作分隔符拆分掉了。

2. 过滤+去重一步到位

接下来要筛选出以大写"A"开头的单词,同时保证不重复。这里用LinkedHashSet最合适——它既能自动去重,还能保留单词在文本中首次出现的顺序:

import java.util.LinkedHashSet;
import java.util.Set;

// 初始化一个有序去重的集合
Set<String> validWords = new LinkedHashSet<>();
for (String word : allWords) {
    // 直接判断单词是否以大写"A"开头,精准匹配你的需求
    if (word.startsWith("A")) {
        validWords.add(word);
    }
}
// 把集合转成最终需要的数组
String[] resultArray = validWords.toArray(new String[0]);

3. 完整可运行示例

把上面的逻辑整合起来,给你一个完整的代码例子:

import java.util.LinkedHashSet;
import java.util.Set;

public class WordExtractor {
    public static void main(String[] args) {
        String rawText = "Apple   Ant\nBanana Apple  \nApe Orange Ant\nAirplane";
        // 清理文本并分割单词
        String[] allWords = rawText.trim().split("\\s+");
        // 过滤符合条件的单词并去重
        Set<String> validWords = new LinkedHashSet<>();
        for (String word : allWords) {
            if (word.startsWith("A")) {
                validWords.add(word);
            }
        }
        // 转换为目标数组
        String[] result = validWords.toArray(new String[0]);
        // 测试输出
        for (String word : result) {
            System.out.println(word);
        }
        // 输出结果:Apple、Ant、Ape、Airplane
    }
}

额外小提示

如果你的文本里还有逗号、句号这类非空格的分隔符,可以先把它们替换成空格,再进行分割,避免出现Apple,这种带符号的“单词”:

// 把所有非字母数字的字符替换成空格
String cleanedText = rawText.replaceAll("[^a-zA-Z0-9\\s]", " ");

内容的提问来源于stack exchange,提问作者drebin96

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 10:37:38