# Kotlin 程序：检查字符串是否为空或`null`

> 原文： [https://www.programiz.com/kotlin-programming/examples/string-empty-null](https://www.programiz.com/kotlin-programming/examples/string-empty-null)

#### 在此程序中，您将学习使用`if-else`语句和 Kotlin 中的函数检查字符串是否为空或`null`。

## 示例 1：检查字符串是否为空或`null`

```kt
fun main(args: Array<String>) {

    val str1: String? = null
    val str2 = ""

    if (isNullOrEmpty(str1))
        println("str1 is null or empty.")
    else
        println("str1 is not null or empty.")

    if (isNullOrEmpty(str2))
        println("str2 is null or empty.")
    else
        println("str2 is not null or empty.")
}

fun isNullOrEmpty(str: String?): Boolean {
    if (str != null && !str.isEmpty())
        return false
    return true
}
```

运行该程序时，输出为：

```kt
str1 is null or empty.
str2 is null or empty.
```

在上面的程序中，我们有两个字符串`str1`和`str2`。`str1`包含空值，`str2`是空字符串。

我们还创建了一个函数`isNullOrEmpty()`，顾名思义，该函数检查字符串是空还是空。 它使用字符串的`!= null`和`isEmpty()`方法使用空检查来对其进行检查。

简而言之，如果字符串不是`null`且`isEmpty()`返回`false`，则它既不是`null`也不为空。 否则，是的。

但是，如果字符串仅包含空格字符（空格），则上述程序不会返回空。 从技术上讲，`isEmpty()`看到它包含空格并返回`false`。 对于带空格的字符串，我们使用字符串方法`trim()`修剪掉所有前导和尾随空格字符。

* * *

## 示例 2：检查带空格的字符串是否为空或`null`

```kt
fun main(args: Array<String>) {

    val str1: String? = null
    val str2 = "   "

    if (isNullOrEmpty(str1))
        println("str1 is null or empty.")
    else
        println("str1 is not null or empty.")

    if (isNullOrEmpty(str2))
        println("str2 is null or empty.")
    else
        println("str2 is not null or empty.")
}

fun isNullOrEmpty(str: String?): Boolean {
    if (str != null && !str.trim().isEmpty())
        return false
    return true
}
```

运行该程序时，输出为：

```kt
str1 is null or empty.
str2 is null or empty.
```

在`isNullorEmpty()`中，我们添加了一个额外的方法`trim()`，该方法删除了给定字符串中的所有前导和尾随空白字符。

因此，现在，如果字符串仅包含空格，该函数将返回`true`。

以下是等效的 Java 代码：[检查字符串是否为 null 或为空的 Java 程序](/java-programming/examples/string-empty-null "Java program to check if a string is null or empty")。