2

文字列配列があるとします

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

4 に答える 4

1

各インデックスで、配列全体に外側のループを使用し、文字列に内側のループを2つ使用します。

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();
于 2013-03-17T08:14:53.537 に答える
1

これも試すことができます...

String[] numText = { "00111", "01110", "10110" };
char[] binaryText = (Arrays.toString(numText).replace("[", "").replace("]", "").replaceAll("[, ]", "")).toCharArray();
于 2013-03-17T09:27:17.300 に答える
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());
于 2013-03-17T08:23:08.393 に答える
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(""); 
于 2013-03-17T08:41:03.830 に答える