fel*_*lix 3 java arrays string java-8
我需要将char数组转换为一定大小的几行.例如,考虑这个数组:
char[] bases = new char[]{'a', 'c', 'c', 't', 'a', 'c', 'a', 't', 'a', 'c', 'c', 't', 'a', 'c', 'a', 't'};
Run Code Online (Sandbox Code Playgroud)
预期的输出大小为5:
accta
catac
ctaca
Run Code Online (Sandbox Code Playgroud)
我目前正在使用此代码:
int ls = 5;
String str = "";
for (int i = 1; i < bases.length; i++) {
str += bases[i - 1];
if (i%ls == 0) {
str += '\n';
}
}
Run Code Online (Sandbox Code Playgroud)
在java 8中是否有一些内置函数来实现这一点?有没有更好的方法来解决这个问题?
你可以转换char[]为字符串,然后你可以使用拆分与一些正则表达式:
String s = String.valueOf(bases);//result = acctacatacctacat
System.out.println(Arrays.toString(s.split("(?<=\\G.{5})")));
Run Code Online (Sandbox Code Playgroud)
如果你想把它放在一行:
String[] spl = String.valueOf(bases).split("(?<=\\G.{5})");
Run Code Online (Sandbox Code Playgroud)
产量
[accta, catac, ctaca, t]
Run Code Online (Sandbox Code Playgroud)