Java 将字符串拆分为指定长度的块(最后一个除外)

Java 将字符串拆分为指定长度的块(最后一个除外),java,string,split,Java,String,Split,假设我有以下字符串: String = "0123456789abcdefg"; 如何将其拆分为5个块,以便得到一个类似字符串的数组 ["01234", "56789", "abcde", "fg"] 请注意,最后一个字符串的长度为2个字符 在Java中有一种简单的方法可以做到这一点吗?我想这种方法应该足够满足您的需要,比如: final int CHUNK_SIZE = 5; List<String> chunks = new ArrayList<String>()

假设我有以下字符串:

String = "0123456789abcdefg";
如何将其拆分为5个块,以便得到一个类似字符串的数组

["01234", "56789", "abcde", "fg"]
请注意,最后一个字符串的长度为2个字符

在Java中有一种简单的方法可以做到这一点吗?

我想这种方法应该足够满足您的需要,比如:

final int CHUNK_SIZE = 5;
List<String> chunks = new ArrayList<String>();

for (int i = 0; i*CHUNK_SIZE < string.length() - 1; ++i)
  chunks.add(string.substring(i*chunkSize,Math.min((i+1)*chunkSize, string.length())));
final int CHUNK_SIZE=5;
列表块=新的ArrayList();
对于(int i=0;i*CHUNK_SIZE
我想这种方法应该足以满足您的需要,比如:

final int CHUNK_SIZE = 5;
List<String> chunks = new ArrayList<String>();

for (int i = 0; i*CHUNK_SIZE < string.length() - 1; ++i)
  chunks.add(string.substring(i*chunkSize,Math.min((i+1)*chunkSize, string.length())));
final int CHUNK_SIZE=5;
列表块=新的ArrayList();
对于(int i=0;i*CHUNK_SIZE
//未经测试的代码!!
字符串in=“0123456789abcdefg”;
列表块=新的ArrayList();
int i=0;
对于(;i<(in.length()-5);i+=5){//,剩余字符超过5个
添加(在子串(i,(i+5))中);
}
blocks.add(in.substring(i,in.length())//添加任何剩余字符
//未经测试的代码!!
字符串in=“0123456789abcdefg”;
列表块=新的ArrayList();
int i=0;
对于(;i<(in.length()-5);i+=5){//,剩余字符超过5个
添加(在子串(i,(i+5))中);
}
blocks.add(in.substring(i,in.length())//添加任何剩余字符

来吧,先给我看看你的代码?你可以使用String.length和String.substring老实说,这将导致一个非常简单的代码,一个for循环和两个String.substring()先试试你自己……嗯,我没有任何代码。我问这个问题是希望语言中已经提供了一个函数。检查这篇文章:来吧,先给我看看你的代码?你可以使用String.length和String.substring老实说,这将导致一个非常简单的代码,一个for循环和两个String.substring()请先自己尝试一下……嗯,我没有任何代码。我问这个问题是希望语言中已经提供了一个函数。查看此帖子:+1以获取代码中的注释(尽管我坚持OP应该先尝试)@morgano是的,我完全同意-我只是想这么做。哦,这个答案对你来说是一种伤害。下次你遇到这样的问题,尽你所能自己解决它-这就是你学习编程的方式,因为编程就是把这样的事情弄明白。当你已经弄明白的东西不起作用的时候,就这么做。有趣事情是这样的,在你的解决方案和重复问题中的一行回答之间进行微benchark,你的运行速度至少快了5倍……哈……只是说……有道理,因为在一行中,正则表达式必须在内部编译,所以故事的寓意是代码更短并不意味着代码中的注释效率更高+1(尽管我坚持OP应该先尝试)@morgano是的,我完全同意-我只是想这么做。哦,这个答案对你来说是一种伤害。下次你遇到这样的问题,尽你所能自己解决它-这就是你学习编程的方式,因为编程就是把这样的事情弄明白。当你已经弄明白的东西不起作用的时候,就这么做。有趣事情是这样的,在你的解决方案和重复问题中的一行回答之间进行微benchark,你的运行速度至少快了5倍……哈……只是说……有道理,因为在一行中,正则表达式必须在内部编译,所以故事的寓意是代码更短并不意味着效率更高