gpt4 book ai didi

java - 使用 split 获取给定字符串的所有 1 个字符长子字符串的数组

转载 作者:搜寻专家 更新时间:2023-11-01 01:05:38 24 4
gpt4 key购买 nike

public static void main(String args[]) {
String sub="0110000";
String a[]=sub.split("");
System.out.println(Arrays.toString(a));
}

我得到的输出为

[, 0, 1, 1, 0, 0, 0, 0]

为什么第一个元素为空?如何获取开头不为null的数组?

最佳答案

第一个参数实际上不为空,它是空字符串"" .这是输出的一部分的原因是您拆分了空字符串。

split 的文档说

The array returned by this method contains each substring of this string that is terminated by another substring that matches the given expression or is terminated by the end of the string.

输入字符串中的每个位置都以空字符串开头(包括位置 0),因此 split 函数也会在位置 0 处拆分输入。由于位置 0 前面没有字符,这会导致第一个空字符串元素。

试试这个:

String sub = "0110000";
String a[] = sub.split("(?<=.)");
System.out.println(Arrays.toString(a));

输出:

[0, 1, 1, 0, 0, 0, 0]

图案 (?<=.)"zero-width positive lookbehind"匹配任意字符 ( . )。用文字来说,它大致说“拆分每个空字符串,前面有一些字符”。

关于java - 使用 split 获取给定字符串的所有 1 个字符长子字符串的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4334129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com