如何删除数组中的“空”元素?

2023-12-09

我目前正在做一个编码挑战,其中指出:

给定一个单词列表,返回可以在美式键盘的一行上使用字母输入的单词,如下图所示(这是 QWERTY 键盘的图像)。

例子:

Input: ["Hello", "Alaska", "Dad", "Peace"]
Output: ["Alaska", "Dad"]

我为解决这个问题所做的是编写一个 for 循环,然后执行替换所有行(如 QWERTY)的 if 语句""如果它的长度大于 1,那么您就不能在一行中输入该单词。我得到的输出几乎是正确的,但我的数组包含空元素。

我的输出是:

[null,"Alaska","Dad",null]

如何返回一个不包含这些 null 元素的数组?为了完成这个挑战,我必须返回一个String[]大批。我无法使用ArrayList回来。

class Solution {
    public String[] findWords(String[] words) {
    String[] result = new String[words.length];

    String row1 = "qwertyuiop";
    String row2 = "asdfghjkl";
    String row3 = "zxcvbnm";

    for (int i = 0 ; i < words.length; i++) {
        if (words[i].toLowerCase().replaceAll("[" + row1 + "]", "").length() == 0 ||
           words[i].toLowerCase().replaceAll("[" + row2 + "]", "").length() == 0 ||
           words[i].toLowerCase().replaceAll("[" + row3 + "]", "").length() == 0) {
            if (words[i] != null) {
                result[i] = words[i];
            }


        }
       }

    return result;
    }


}

使用这一衬垫:

Arrays.stream(result).filter(Objects::nonNull).toArray(String[]::new)

过滤数组并获取所有非空对象。不要忘记将流转换回数组。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何删除数组中的“空”元素? 的相关文章

  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 字符串数组文本格式化

    我有这个字符串 String text Address 1 Street nr 45 Address 2 Street nr 67 Address 3 Street nr 56 n Phone number 000000000 稍后将被使用
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 如何从指定日期获取上周五的日期? [复制]

    这个问题在这里已经有答案了 如何找出上一个 上一个 星期五 或指定日期的任何其他日期的日期 public getDateOnDay Date date String dayName 我不会给出答案 先自己尝试一下 但是 也许这些提示可以帮助
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • 如何计算 3D 坐标的线性索引,反之亦然?

    如果我有一个点 x y z 如何找到该点的线性索引 i 我的编号方案是 0 0 0 是 0 1 0 0 是 1 0 1 0 是最大 x 维度 另外 如果我有一个线性坐标 i 我如何找到 x y z 我似乎无法在谷歌上找到这个 所有结果都充满
  • 当我从 Netbeans 创建 Derby 数据库时,它存储在哪里?

    当我从 netbeans 创建 Derby 数据库时 它存储在哪里 如何将它与项目的其余部分合并到一个文件夹中 右键单击Databases gt JavaDB in the Service查看并选择Properties This will
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

  • 从驱动程序创建进程

    有没有办法在Windows NT平台 XP W7 上从内核模式创建用户模式进程 编辑 我必须只安装驱动程序 这是该项目的具体情况 要创建有效的 win32 进程 驱动程序必须与 CSRSS 通信 完全未记录 因此 我最终对用户模式 APC
  • 优化 Postgres 对时间戳范围的查询

    我定义了下表和索引 CREATE TABLE ticket wid bigint NOT NULL DEFAULT nextval tickets id seq regclass eid bigint created timestamp w
  • 在 Clojure 中喜结良缘:没有(显式的、丑陋的)突变的循环引用?

    在我的回答中Clojure 理解示例我有一个处理自己的输出的函数 defn stream seed defn helper slow concat map str first slow seed lazy seq helper rest s
  • Google 地球 KML 中的文本叠加

    我想添加 KML 文件上次更新的日期 时间 以便在 Google 地球中显示为覆盖图 无论如何可以做到这一点吗 我会考虑更新 KML 文件中的文本 然后将其显示在谷歌地球中 非常感谢 一个技巧是使用谷歌图表API从文本动态创建图像并将其用作
  • C# MySQL 错误“列计数与第 1 行的值计数不匹配”

    Query SQL MySqlCommand command1 new MySqlCommand INSERT INTO Equipamento equipamento situacao modelo nr serie avaria est
  • 如何使用 EF6 Code First 将外键属性公开给具有导航属性的现有实体

    我有一个已经与底层数据库一起使用的实体 并且它是使用可选实体 1 0 1 的导航属性创建的 因此 按照默认约定 EF 在数据库中创建了一个可为空的外键列 并根据该约定为其指定了带下划线的 MyProp Id 名称 现在 我希望将该外键公开为
  • 在 bash 脚本中使用 grep 在日志文件上使用 tail -f

    我想创建一个脚本来查找正在写入的日志文件中的特定字符串 我想获取第一个结果并将其放入变量中以供以后使用 这将通过 SSH 连接使用 如下所示 ssh email protected bash s lt usr local bin check
  • 默认情况下使用 uuid 时 Cassandra TimeUUID 泛洪文件描述符

    我有 Cassandra 模型 import uuid from cassandra cqlengine import columns from cassandra cqlengine models import Model class M
  • 如何使用 24 位位图的 ScanLine 属性?

    如何使用ScanLine24 位位图像素操作的属性 为什么我应该更喜欢使用它而不是经常使用Pixels财产 一 简介 在这篇文章中我将尝试解释ScanLine属性用法仅适用于 24 位位图像素格式以及您是否确实需要使用它 首先来看看是什么让
  • 带有 CUDA 的 Pytorch 在 Ubuntu 上本地安装失败

    我正在尝试使用 CUDA 安装 PyTorch 我按照中提到的说明 使用 conda 安装 进行操作https pytorch org get started locally conda 安装 pytorch torchvision tor
  • 在 Ubuntu 上安装 Mono-Complete 4.8

    我正在尝试安装Mono 4 8 in a Docker图片 但我下载失败 这是 dockerfile RUN apt get update apt get install y curl rm rf var lib apt lists apt
  • 如何附加到 Azure 存储文件共享中的文件?

    我想将条目写入存储在 Azure 文件存储中的日志文件 我目前有这个 var log My log entry var client storageAccount CreateCloudFileClient var share client
  • 如何在 MongoDB shell 中创建可尾游标?

    我想直接在 MongoDB 中为上限集合创建一个无限处理循环 但我找不到如何在 MongoDB shell 中获取 tailabale 游标 在 Python 中可以使用tailable选项中集合 find 尽管 您可以使用 addOpti
  • Java:读取一个巨大文件的最后n行

    我想读取一个非常大的文件的最后 n 行 而不使用 Java 将整个文件读入任何缓冲区 内存区域 我查看了 JDK API 和 Apache Commons I O 但无法找到适合此目的的一个 我正在考虑 tail 或 less 在 UNIX
  • 使用for循环匹配具有各种扩展名的文件[重复]

    这个问题在这里已经有答案了 我正在尝试匹配并循环扩展名为 txt h py 的文件 在特定文件夹 arg 中 这是我所做的 for file in arg txt h py do done 然而 即使我有这样的文件 我也没有得到所有扩展名的
  • Android-Listview项目滚动时背景颜色变化

    My ListView包含两个Textviews 在一行中 第一个用于名称 第二个用于结果 我需要更改结果的背景颜色TextView根据结果 就像如果通过那么结果TextView结果失败时颜色将为绿色TextView颜色将是红色 我有十行L
  • NSJSONSerialization + AFNetworking 出现无法识别的选择器错误

    Update 我刚刚使用以下命令测试了从服务器返回的 JSON 格式JSONlint没关系 我在 AFNetworking 调用返回 JSON 数据的 php 脚本时遇到 NSJSONSerialization 异常 我在这里查看了具有相同
  • 复制时可执行文件以某种方式损坏

    我正在使用Qt的QNetworkAccessManager从一个地方 当前是本地机器 但将来它将是一个HTTP服务器 下载一个文件并将其临时存储在TEMP文件中 linux ubuntu 我发现的问题是该文件 这是一个可执行文件 在此过程中
  • PHP 获取目录中图像的尺寸

    我有大量照片需要整理 我需要知道每张照片的尺寸才能知道 否则需要重新调整大小 作为一名程序员 我相信必须有一种更快的方法来做到这一点 我已经走了很远了 以下代码读取目录和所有子目录 但当我尝试提取尺寸时 循环在需要检查的所有图片的 8 处停
  • 如何删除数组中的“空”元素?

    我目前正在做一个编码挑战 其中指出 给定一个单词列表 返回可以在美式键盘的一行上使用字母输入的单词 如下图所示 这是 QWERTY 键盘的图像 例子 Input Hello Alaska Dad Peace Output Alaska Da