迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

在 Kotlin 中将字符串拆分为数组

作者:迹忆客 最近更新:2023/05/10 浏览次数:

一系列字符序列总是组成一个字符串,我们可以在需要时检索每个字符序列。 例如,在现实世界的应用程序中,用户通常使用字符序列来搜索应用程序中的特定服务或产品。

我们通常不会使用整个字符序列来执行搜索。 我们通常从搜索词中检索关键字并使用它们来执行搜索。

本教程将展示如何在 Kotlin 中将字符串拆分为字符串数组。 如上所述,您可以使用此技术通过从字符串数组中检索关键字来在应用程序中进行搜索。


创建一个 Kotlin 项目

打开 IntelliJ IDEA 并选择文件 > 新建 > 项目。 在打开的窗口中,将项目名称输入为 split-string,在 Language 部分选择 Kotlin,然后在 Build System 部分选择 IntelliJ。

最后,按创建按钮生成项目。

生成项目后,在 src 文件夹下创建一个名为 data.txt 的文件,并将此文本粘贴到该文件中。

Your, service, provider, is, wishing, you, a, good, day

此文本包含一行字符串,每个字符串之间使用逗号分隔。 我们将使用此文件将字符串读入我们的应用程序。


在 Kotlin 中从文件中读取文本

在 src/main/kotlin 文件夹下创建第二个名为 Main.kt 的文件,并将以下代码复制并粘贴到该文件中。

import java.io.File

private val fileData = File("src/data.txt");

fun readFileData(): String {
    return fileData.bufferedReader()
        .readLine();
}

fun main(){
    println(readFileData());
}

在此代码中,我们创建了一个名为 readFileData() 的方法,该方法使用 BufferedReader 来读取我们使用 readLine() 方法添加到 data.txt 文件中的行。

BufferedReader 提供了一种从文件中读取数据的有效方法,因为数据被读入缓冲区而不是直接从文件中读取。 如果我们再次需要这个数据,数据将从缓冲区中获取。

readLine() 方法读取单个文本行(如果存在); 否则,该方法返回 null。 行尾由换行符 \n、回车符 \r 或 EOF 标识,表示文件结束。

运行此代码并注意我们的文件已成功读取。 内容将被记录到控制台,如下所示。

Your, service, provider, is, wishing, you, a, good, day

在 Kotlin 中使用 split() 方法和 Array() 构造函数将字符串拆分为数组

对上例中的 main() 方法进行注释,将以下代码复制粘贴到Main.kt文件中 readFileData() 方法之后。

fun usingSplitAndArray(): Array<String> {
    val stringData: List<String> = readFileData()
        .split(",");

    return Array(stringData.size) { index ->
        stringData[index]
    }

}

fun main(){
    println(usingSplitAndArray()[0])
}

在此代码中,我们创建了一个名为 usingSplitAndArray() 的方法,该方法对 readFileData() 方法返回的字符串调用 split() 方法以返回字符串 List<String> 值的列表。

split() 方法使用逗号作为字符串的分隔符。 请注意,您可以在 split() 方法中传递可变数量的分隔符以获得所需的结果。

由于我们希望返回一个字符串数组 Array<String> ,因此我们使用返回的列表通过 Array() 构造函数创建一个新数组。 此构造函数接受两个参数:第一个是数组大小,第二个是接受 int 并返回类型 T 的 lambda 表达式。

由于我们的列表可以提供所有这些参数,我们将列表大小作为 Array() 构造函数的第一个参数传递,第二个参数使用列表中每个项目的索引返回数组的值。

为了验证我们的字符串是否已转换为数组,我们在 main() 方法中使用 SplitAndArray()[0] 记录了返回数组中索引 0 处的值。

运行此代码并确保输出如下所示。

Your

在 Kotlin 中使用 split() 和 toTypedArray() 方法将字符串拆分为数组

注释掉前面示例中的 main() 方法,并将以下代码复制并粘贴到 Main.kt 文件中的 usingSplitAndArray() 方法之后。

fun usingToTypedArray(): Array<String> {
    return readFileData()
        .split(",")
        .toTypedArray();
}

fun main(){
    println(usingToTypedArray()[1])
}

在此代码中,我们创建了一个名为 usingToTypedArray() 的函数,它从 split() 方法返回的列表中返回一个字符串数组 Array<String>

在前面的示例中,我们提到 split() 方法返回一个字符串列表 List<String>,我们可以使用 Array() 构造函数来创建一个字符串数组。

这个例子比前面的例子简单得多,因为我们只需要在返回的列表上调用 toTypedArray() 方法来返回一个类型化数组,它只是一个字符串数组 Array<Strings>

main() 方法中,我们记录了数组返回的索引 1 处的值,以验证字符串是否已转换为数组。

运行此代码并确保输出如下所示。

 service

在 Kotlin 中将字符串拆分为数组后删除前导和尾随空格

注释掉前面示例中的 main() 方法,并将以下代码复制并粘贴到 Main.kt 文件中的 usingToTypedArray() 方法之后。

fun usingTrimMethod(): Array<String> {
    return readFileData()
        .split(",")
        .map(String::trim)
        .toTypedArray()
}

fun main(){
    println(usingTrimMethod()[1])

}

请注意 ,我们的文本包含前导空格,并且前面的示例返回了一个将空格作为字符串一部分的值。 要删除前导和尾随空格,我们调用 map() 方法并将 trim() 方法作为其参数传递。

trim() 方法是一个转换函数,它删除所有前导和尾随空格(如果存在)。 此示例与上一个示例类似,其主要目的是展示如何消除空格。

运行此示例并注意记录到控制台的值,在这种情况下,没有空格,如下所示。

service

总结

在本教程中,我们学习了如何将字符串拆分为数组。 我们涵盖的主题包括:

  1. 从文本文件中读取一行字符串。
  2. 使用 split() 方法和 Array() 构造函数返回一个字符串数组。
  3. 使用 split() 方法和 toTypedArray() 方法返回一个字符串数组。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 Java 中延迟几秒钟的时间

发布时间:2023/12/17 浏览次数:217 分类:Java

本篇文章主要介绍如何在 Java 中制造程序延迟。本教程介绍了如何在 Java 中制造程序延时,并列举了一些示例代码来了解它。

如何在 Java 中把 Hashmap 转换为 JSON 对象

发布时间:2023/12/17 浏览次数:187 分类:Java

它描述了允许我们将哈希图转换为简单的 JSON 对象的方法。本文介绍了在 Java 中把 Hashmap 转换为 JSON 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 JSON 对象的详细例子。

如何在 Java 中按值排序 Map

发布时间:2023/12/17 浏览次数:171 分类:Java

本文介绍了如何在 Java 中按值对 Map 进行排序。本教程介绍了如何在 Java 中按值对 Map 进行排序,并列出了一些示例代码来理解它。

如何在 Java 中打印 HashMap

发布时间:2023/12/17 浏览次数:192 分类:Java

本帖介绍了如何在 Java 中打印 HashMap。本教程介绍了如何在 Java 中打印 HashMap 元素,还列举了一些示例代码来理解这个主题。

在 Java 中更新 Hashmap 的值

发布时间:2023/12/17 浏览次数:146 分类:Java

本文介绍了如何在 Java 中更新 HashMap 中的一个值。本文介绍了如何在 Java 中使用 HashMap 类中包含的两个方法-put() 和 replace() 更新 HashMap 中的值。

Java 中的 hashmap 和 map 之间的区别

发布时间:2023/12/17 浏览次数:79 分类:Java

本文介绍了 Java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 Java 中 Map 和 HashMap 之间的主要区别。在 Java 中,Map 是用于以键值对存储数据的接口,

在 Java 中获取用户主目录

发布时间:2023/12/17 浏览次数:218 分类:Java

这篇文章向你展示了如何在 Java 中获取用户主目录。本教程介绍了如何在 Java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。

Java 中 size 和 length 的区别

发布时间:2023/12/17 浏览次数:179 分类:Java

这篇文章教你如何知道 Java 中大小和长度之间的区别。本教程介绍了 Java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。

Java 中的互斥锁

发布时间:2023/12/17 浏览次数:111 分类:Java

了解有关 Java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便