在回答之前,请仔细阅读此支架小册子 (以下代码只是我实践中的大型代码的迷你模型。实际代码包含数千
单词及其数组进一步处理了许多必需的东西。例如,“我是一个懒惰的男孩”将是
转换为'[i1] [a2,m2] [a1] [l4,a4,z4,y4] [b3,o3,y3]',并将它们连接起来后[i1,a2,m2,a1,l4, a4,z4,
y4,b3,o3,y3])。
以下是完整的迷你型号代码:
import com.google.common.collect.ObjectArrays;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.lang3.ArrayUtils;
public class WordSplit {
public static void main(String[] args) {
String str= "i am a lazy boy";
String[] word = str.split("\\s");
//String[] chars = word.split("(?!^)");
for(int i=0; i<word.length; i++){
String [] such= word[i].split("(?!^)");
/*upto here five such arrays has been creataed as:
such : [i]
such : [a, m]
such : [a]
such : [l, a, z, y]
such : [b, o, y]
*/
/* HOW TO USE HERE ObjectArrays.concat()OR ArrayUtils.addAll( );
SOME ITS EQUIVALENT TO GET THIS OUTPUT:
[i,a,m,a,l,a,z,y,b,o,y]
*/
}
}}
代码创建了五个数组:
such : [i]
such : [a, m]
such : [a]
such : [l, a, z, y]
such : [b, o, y]
但是我期待通过某种方法将它们作为循环的步骤进行汇总
such: [i]
such: [i, a, m]
such: [i, a, m, a]
such: [i, a, m, a, l, a, z, y]
such: [i, a, m, a, l, a, z, y, b, o, y]
我需要帮助才能获得上述输出。
答案 0 :(得分:1)
如果您想使用ArrayUtils,可以按照以下步骤进行操作。
在你的循环之外初始化为空:
String[] such = new String[0];
然后在你的循环中用你的当前String []这样的行替换:
such = ArrayUtils.addAll(such, word[i].split("(?!^)"));
答案 1 :(得分:0)
尝试:
"i am a lazy boy".replaceAll(" ", "").toCharArray();
此处的类型为char[]
,但实际上比原来的String[]