如何拆分数组

时间:2011-11-17 04:24:22

标签: java

我正在试图弄清楚如何将数组拆分成更小的部分。我有一个带有一堆字符的String数组。我想创建一个新数组,将前五个字符存储在它的第一个索引中,接下来的五个存储在下一个索引中等等。

4 个答案:

答案 0 :(得分:2)

这样的东西?

String separator = new String("|");
String [] splits = string.split(separator);

答案 1 :(得分:2)

假设你有类似的东西:

String[] myArray = {"12345123", "45123", "45"};

您可以将其拆分为五个字符的数组,如下所示:

String wholeString="";
for(String s : myArray)
    wholeString += s;

int arrayLength = wholeString.length()/5;
if(wholeString.length()%5==0)
    arrayLength--;

String[] arrayOfFive = new String[arrayLength];
int counter=0;
String buffer = "";
for(int i=0;i<s.length();i++){
    buffer += s.charAt(i);
    if(buffer.length()==5){
        arrayOfFive[counter] = buffer;
        buffer = "";
}

现在,如果您不想将整个数组字符串放入内存并将其保存在那里,您可以一次执行一个字符:

String buffer = "";
List<String> stringList = new ArrayList<String>();
for(String s : myArray){
    for(int i=0;j<s.length();i++){
        buffer += s.charAt(i);
        if(buffer.length()==5){
            stringList.add(buffer);
            buffer = new String();
        }
    }
}

String[] arrayOfFive = new String[stringList.length()];
stringList.toArray(arrayOfFive);

如果您只有一个1字符字符串数组,那么您可以这样做:

int arrayLength = myArray.length/5;
if(myArray.length%5==0)
    arrayLength--;
String[] arrayOfFive = new String[arrayLength];
for(int i=0;i<myArray.length;i++){
    if(i%5==0)
        arrayOfFive[i/5] = "";
    arrayOfFive[i/5] += myArray[i];
}

如果你有一个包含长度为500的单个字符串的字符串数组,那么你可以得到这样的字符串:

String myString = myArray [0];

之后你可以循环遍历字符串中的字符,将其分解:

for(int i=0;i<myString.length();i++){
    if(i%5==0)
        arrayOfFive[i/5] = "";
    arrayOfFive[i/5] += myString.charAt(i);
}

答案 2 :(得分:1)

List<String> list=new ArrayList<String>();
int chunkSize=5;
for (int i=0; i<strings.size; i++) {
  int lastChunk = strings[i].length() % chunkSize;
  int chunks=strings[i].length() / chunkSize;
  for (int j=0; j<chunks; j++) {
    list.add(strings[i].substring(j*chunkSize,j*chunkSize+chunkSize);
  }
  if (lastChunk > 0) {
    list.add(strings[i].substring(chunks*chunkSize, chunks*chunkSize+lastChunk);
  }
}

答案 3 :(得分:0)

char c[]=str.toCharArray();
    int array_length=0;
    int start=1;
    if(str.length()%5==0)
    {
        array_length=str.length()/5;
    }
    else
        array_length=str.length()/5 +1;
    String s[]=new String[array_length];
    for(int i=0;i<array_length;i++)
    {
        String temp="";

        for(int j=start;j<=str.length();j++)
        {
            if(j%5==0)
            {
                temp=temp+c[j-1];
                start=j+1;
                break;
            }
            else
            {
                temp=temp+c[j-1];
            }
        }
        s[i]=temp;
    }
    for(int i=0;i<array_length;i++)
    {
        System.out.println(s[i]);
    }