在Java中将字符串拆分为n个长度的块

在Java中将字符串拆分为n个长度的块,java,string,split,Java,String,Split,可能重复: 鉴于以下实用方法,我有: /** * 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 * @retu

可能重复:

鉴于以下实用方法,我有:

/**
 * 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;
}
/**
*将字符串拆分为大小为chunkSize的块
*
*@param s要拆分的字符串;不能为空
*@param chunkSize每个卡盘中的字符数;必须大于0
*@返回分块的原始字符串
*/
公共静态列表splitInChunks(字符串s,int chunkSize){
先决条件.checkArgument(chunkSize>0);
列表结果=Lists.newArrayList();
int length=s.length();
for(int i=0;i
1) 在任何公共Java库(如Apache Commons、Google Guava)中是否有等效的方法,以便我可以将其从代码库中丢弃?一眼就找不到。它是返回数组还是返回字符串列表并不重要

(显然,我不会仅仅为了这个而将依赖性添加到某个大型框架中,但请随意提及任何公共库;也许我已经在使用它了。)

2) 如果没有,在Java中有没有更简单、更干净的方法呢?或者有一种更高效的方法?(如果您建议使用基于正则表达式的解决方案,也请考虑非正则表达式专家的可读性的清洁度……-)

编辑:这符合问题“”的副本,因为它完美地回答了我的问题

大多数情况下,将其转换为流并一次读取N个字节的想法似乎满足了您的需要,这是一个复制品吗


(对于这种特殊的坚果来说,这似乎有点像一把大锤)

你可以用番石榴来做:

…它返回一个
Iterable


还有更多的例子。

我不值得表扬。我直接从OP的代码中删除了它。当然,我会放弃我自己的实用方法,现在我知道了,直接使用Splitter,但感谢您指出番石榴可以做到这一点!嘿,这就要结束了,我想接受的答案是。。。嗯,但是等等,让我先根据我的喜好编辑这个答案,然后我会给你额外的分数。:-)我同意这是重复的。或者,更确切地说,这个问题不是一个完全的骗局,但答案包含你的答案,这正是我想要的@seanizer:我确实看过Guava的
字符串
类,但我完全错过了
拆分器
的存在。
 Splitter.fixedLength(chunkSize).split(s)