在 Kotlin 中将字符串拆分为数组
一系列字符序列总是组成一个字符串,我们可以在需要时检索每个字符序列。 例如,在现实世界的应用程序中,用户通常使用字符序列来搜索应用程序中的特定服务或产品。
我们通常不会使用整个字符序列来执行搜索。 我们通常从搜索词中检索关键字并使用它们来执行搜索。
本教程将展示如何在 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
总结
在本教程中,我们学习了如何将字符串拆分为数组。 我们涵盖的主题包括:
- 从文本文件中读取一行字符串。
-
使用
split()
方法和Array()
构造函数返回一个字符串数组。 -
使用
split()
方法和toTypedArray()
方法返回一个字符串数组。
相关文章
在 Kotlin 中继承具有多个构造函数的类
发布时间:2023/05/12 浏览次数:200 分类:Java
-
本文讨论如何扩展具有多个构造函数的类。 构造函数是在创建对象时调用的函数,用于初始化类变量。在 Kotlin 中扩展具有多个构造函数的类
Kotlin中栈数据结构的使用
发布时间:2023/05/12 浏览次数:130 分类:Java
-
本篇文章我们就来学习一下Kotlin中栈的使用。 我们还将看到用于更新和更改 Kotlin 堆栈的标准函数,包括 push、pop、peek、search 和 isEmpty。我们还将研究比 Kotlin 中的堆栈更好的替代方案。
Kotlin中findViewById函数的使用
发布时间:2023/05/12 浏览次数:183 分类:Java
-
Kotlin 中的 findViewById 允许在 ID 的帮助下查看和更新视图。 本文介绍了 Kotlin 中 findViewById 函数的使用。
Kotlin runBlocking:用协程代码桥接非协程世界
发布时间:2023/05/12 浏览次数:194 分类:Java
-
Kotlin runBlocking 函数允许阻塞整个线程。 我们将在本文中看到更多关于 Kotlin Coroutine runBlocking 的信息。
Kotlin Init 和构造函数之间的区别
发布时间:2023/05/12 浏览次数:67 分类:Java
-
构造函数和 Kotlin init 块是这种编程语言的重要组成部分。 本文概述了 init 和构造函数之间的区别。
在 Kotlin 中获取 SimpleName
发布时间:2023/05/12 浏览次数:154 分类:Java
-
本文介绍了在 Kotlin 中获取类的 SimpleName 的简单方法。 它显示了与 Java 的 getSimpleName() 方法等效的方法。
在 Kotlin 中将字符串转换为 Int 的不同方法
发布时间:2023/05/12 浏览次数:178 分类:Java
-
如果您正在构建接受多个参数的程序或应用程序,并且您希望确保只传递整数参数,则可以将 Kotlin 字符串转换为整数。