java - 在 Java 中将字符串拆分为 n 个长度的 block

标签 java string split

<分区>

Possible Duplicate:
Split string to equal length substrings in Java

鉴于我有以下实用方法:

/**
 * Splits string <tt>s</tt> into chunks of size <tt>chunkSize</tt>
 *
 * @param s the string to split; must not be null
 * @param chunkSize number of chars in each chuck; must be greater than 0
 * @return The original string in chunks
 */
public static List<String> splitInChunks(String s, int chunkSize) {
    Preconditions.checkArgument(chunkSize > 0);
    List<String> result = Lists.newArrayList();
    int length = s.length();
    for (int i = 0; i < length; i += chunkSize) {
        result.add(s.substring(i, Math.min(length, i + chunkSize)));
    }
    return result;
}

1) 在任何常见的 Java 库中是否有等效的方法(例如 Apache Commons、Google Guava)以便我可以将其从我的代码库中删除?快速浏览找不到。它返回数组还是字符串列表并不重要。

(显然我不会为此添加对某个大型框架的依赖,但请随意提及任何通用库;也许我已经在使用它了。)

2) 如果没有,是否有一些更简单、更清晰的方法可以在 Java 中执行此操作? 或者性能显着提高的方法? (如果您建议基于正则表达式的解决方案,也请从非正则表达式专家的可读性角度考虑清洁度......:-)

编辑:这符合问题“Split string to equal length substrings in Java”的重复,因为 this Guava solution 这完美地回答了我的问题!

最佳答案

您可以使用 Guava 的 Splitter 来做到这一点:

 Splitter.fixedLength(chunkSize).split(s)

...返回 Iterable<String> .

更多例子在 this answer .

关于java - 在 Java 中将字符串拆分为 n 个长度的 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4097577/

相关文章:

Java Math.min/max 性能

java - Wicket 1.4 中文本字段更改行为的容器可见性控制

python - 使用 pandas 在 python 中分割文本并相应 append

java - 带有嵌入式servlet容器的Spring应用程序运行错误

java - Android 中的弯曲文本

c++ - 需要帮助弄清楚为什么我的 Reverse String c++ 程序坏了

python - 将字符串中的每个其他字母大写

c# - 如何查找字符串中的两个引号

python:读取文件并将其拆分为字典列表

Excel CSV。包含超过 1,048,576 行数据的文件