Java String.join() 方法2025年03月24日 | 阅读 5 分钟 Java String 类 join() 方法使用给定的分隔符连接字符串。在 String join() 方法中,分隔符会为每个元素复制。join() 方法自 JDK 1.8 起包含在 Java 字符串中。 Java String 类中有两种 join() 方法。 签名join() 方法的签名或语法如下所示 这两种版本都会生成一个新字符串,其中给定的分隔符分隔每个部分。需要注意的是,分隔符会出现在生成字符串的开头和结尾,以及每对相邻组件之间。此外,根据 Java 文档,如果元素或分隔符为 null,则会抛出 NullPointerException。 参数delimiter : 将添加到每个元素的字符值 elements : 将附加到分隔符的字符值 返回值带分隔符的连接字符串 异常抛出NullPointerException:如果元素或分隔符为 null。 自从 (Since)1.8 内部实现Java String.join() 方法示例示例编译并运行输出 welcome-to-TpointTech 说明 代码 String.join("-", "Welcome", "to", "TpointTech") 使用了 Java String 类中 JDK 1.8 引入的静态 join() 方法。它将提供的字符串 ("Welcome", "to", "TpointTech") 连接起来,并在它们之间使用指定的分隔符 "-"。因此,输出字符串将是 "Welcome-to-TpointTech"。 Java String.join() 方法示例 2我们可以使用分隔符来格式化字符串,就像在下面的示例中展示日期和时间一样。 示例编译并运行输出 25/06/2018 12:10:10 说明 在 StringJoinExample2 类的 main 方法中,使用 String.join() 函数创建了两个字符串。首先,通过将字符串 "25"、"06" 和 "2018" 与分隔符 "/" 连接起来,创建了字符串 "date"。结果是 "25/06/2018"。然后使用 System.out.print() 打印此字符串。当使用第二个字符串 "time" 时,通过将 "12"、"10" 和 "10" 与 ":" 作为分隔符连接起来,得到 "12:10:10"。然后使用 System.out.println() 打印此字符串,不加停顿地附加到前面的输出。 Java String.join() 方法示例 3在使用 null 作为分隔符的情况下,我们会得到 null 指针异常。以下示例对此进行了确认。 示例编译并运行输出 Exception in thread "main" java.lang.NullPointerException at java.base/java.util.Objects.requireNonNull(Objects.java:221) at java.base/java.lang.String.join(String.java:2393) at StringJoinExample3.main(StringJoinExample3.java:7) 说明 在 StringJoinExample3 类的 main() 函数执行期间,第 7 行发生了 NullPointerException。该错误是由于将 null 作为分隔符参数传递给了 String.join() 方法而引起的,这是不允许的。由于 String.join() 方法需要一个非 null 的分隔符值,因此当遇到 null 分隔符时会抛出 NullPointerException。为了解决这个问题,应该将非 null 分隔符(例如空字符串 ("") 或任何其他合适的字符序列)作为第一个参数传递给 String.join() 方法。 然而,如果必须附加到分隔符的元素是 *null*,那么就会出现歧义。这是因为存在两种 join() 方法,并且 *null* 对于这两种类型的 join() 方法都是可以接受的。请观察以下示例。 示例编译并运行输出 /StringJoinExample4.java:7: error: reference to join is ambiguous str = String.join("India", null); ^ both method join(CharSequence,CharSequence...) in String and method join(CharSequence,Iterable<? extends CharSequence>) in String match /StringJoinExample4.java:7: warning: non-varargs call of varargs method with inexact argument type for last parameter; str = String.join("India", null); ^ cast to CharSequence for a varargs call cast to CharSequence[] for a non-varargs call and to suppress this warning 1 error 1 warning Java String join() 方法示例 4如果必须附加到分隔符的元素包含一些字符串,其中一些是 null,那么 null 元素将被视为普通字符串,我们不会收到任何异常或错误。让我们通过一个例子来理解这一点。 示例编译并运行输出 null- wake up - eat - write content for Tpoint - eat - sleep 说明 StringJoinExample5 类的 main 函数初始化 String 变量 str 为 null。然后,它使用 String.join() 方法将多个字符串与作为分隔符的 "-" 连接起来。String.join() 方法将其中一个元素视为普通字符串,即使它是 null,从而避免了 NullPointerException。通过连接所有提供的字符串(包括 null 元素),并用 "-" 分隔,得到最终字符串。因此,程序输出将是 "null-wake up-eat-write content for JTP-eat-sleep"。此行为表明 String.join() 在连接过程中将 null 元素视为普通字符串。 |
我们请求您订阅我们的新闻通讯以获取最新更新。