如何拆分字符串数组的每个元素并形成一个新数组?

时间:2013-03-17 08:02:13

标签: java arrays

假设我有一个字符串数组

NumText[]={“00111”, “01110”, “10110”}, 

现在我想要一个新阵列

BinaryText[]={"0","0","1","1","1"......"1","1","0"}, 

这意味着我必须拆分数组NumText []的每个元素,并将我得到的所有位组合成一个新数组。我能弄清楚的是我为每个元素定义了一个字符串数组,比如

Binary0=NumText[0].split("");
Binary1=NumText[1].split("");
Binary2=NumText[2].split("");

之后我必须删除每个BinaryX的前导零,并将它们连接在一起,这真是一个坏主意。有更好的方法吗?感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

在整个数组中使用两个循环,在每个索引处使用字符串的内部:

StringBuilder temp = new StringBuilder();
for(int i=0; i < numText.length; i++){
   for( int j = 0; j < numText[i].length(); j++){
        temp.append(numText[i].charAt(j));
   }

}

char[] newArray = temp.toCharArray();

答案 1 :(得分:1)

你也可以尝试一下......

String[] numText = { "00111", "01110", "10110" };
char[] binaryText = (Arrays.toString(numText).replace("[", "").replace("]", "").replaceAll("[, ]", "")).toCharArray();

答案 2 :(得分:0)

我不知道你为什么要删除零,但这是我的答案

String [] s = {"01 110"," 10010","01010"};
        ArrayList<String> list= new ArrayList<String>();
        for(int i =0 ; i<s.length;i++){
            s[i]=s[i].replaceAll("[0\\s]", "");
                for(int j = 0 ; j<s[i].length();j++){
                    list.add(Character.toString(s[i].charAt(j)));
                }
        }
        System.out.println(list.toString());

答案 3 :(得分:0)

String numText[] = { "00111", "01110", "10110" };
StringBuilder sb = new StringBuilder();

for (int i = 0; i < numText.length; i++) {
    numText[i] = numText[i].replaceAll("^[0]*", ""); //Remove leading zeros
    for (int j = 0; j < numText[i].length(); j++) {
        sb.append(numText[i].charAt(j));
    }
}
String[] output = sb.toString().split("");