java - 将字符串拆分为特定大小的 String[]

标签 java regex

假设我的分隔符是 ','(逗号),我正在寻找一个函数 split 来保证返回的 String[] 数组具有一定的大小(不多也不少) :

String[] split(String str, int limit);

split("hello", 2);               => ["hello", ""]
split("hello,", 2);              => ["hello", ""]
split(",hello", 2);              => ["", "hello"]
split("hello,world", 2);         => ["hello", "world"]
split("hello,world,goodbye", 2); => ["hello", "world,goodbye"]

看到数组大小如何始终为 2 了吗?我可以通过 Pattern.split 获得一些这种行为,但并非适用于所有情况……我该怎么做?

最佳答案

您可以使用 Arrays.copyOf() 返回一个填充数组。但是,填充将为 null 而不是空字符串。

String[] parts = Arrays.copyOf("hello,".split(",", 2), 2);
String[] parts1 = Arrays.copyOf(",hello".split(",", 2), 2);
String[] parts2 = Arrays.copyOf("hello,world".split(",", 2), 2);
String[] parts3 = Arrays.copyOf("hello,world,goodbye".split(",", 2), 2);
String[] parts4 = Arrays.copyOf("hello,".split(",", 2), 4); //null padding

关于java - 将字符串拆分为特定大小的 String[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4444341/

相关文章:

regex - 编码正则表达式以返回 true 以获取组的精确计数

java - Netty 客户端连接操作的哪一部分应该共享?

java - 注释 - 在构建时读取元素值

python - 替换非字母数字字符,除了一些异常(exception) python

python - 将 1 添加到与字符串中特定正则表达式匹配的数字

`(a|e|i|o|u)? ` 和 `([aeiou])?` 之间的正则表达式性能

java - 非捕获组中的捕获组

java - 在复杂环境中处理属性和 log4j 的工具

在 Linux 上部署为打包的 .war 时,由 FFmpeg 引起的 Java.lang.NoClassDefFoundError (适用于开发机器)

Java 浮点意外圆角化