Java - 为字符串分配特定数量的结果

时间:2017-02-01 11:12:00

标签: java arrays string

这里我的字符串

中有完整的结果
formatedString = {1,2,3,4,5,6,7,8,9,10.....N}

我想首先分配5个结果让我们说

formatedString1 = {1,2,3,4,5}

然后在下一个电话,接下来的五个电话,直到所有结果都结束。

formatedString1 = {6,7,8,9,10}

我有什么方法可以做到这一点。

感谢。

3 个答案:

答案 0 :(得分:1)

您可以使用Stream offsetlimit方法:

String str = "0,1,2,3,4,5,6,7,8,9";
int offset = 0; int limit = 5;
Stream.of(str.split(",")).skip(offset).
            limit(limit).forEach(System.out::println);

每次增加偏移量为5。

答案 1 :(得分:0)

你可以在一个String-Array上创建一个这样的辅助方法,你可以从你的" formatedString"中获取:

String formatedString = "1,2,3,4,5,6,7,8,9,10";
String[] arr = formatedString.split(","); // => ["1","2","3",...]

private void call( String[] inputArr, int from, int count )
{
    // check bounds here!
    // "from" must be >0 and < inputArr.length
    // "from" + "count" must be <= inputArr.length

    for( int i = from; i < from+count; i++ )
    {
        // just for safety:
        if ( i>=inputArr.length ) break;

        handle( inputArr[i] );
    }
}

在一个循环中调用它:

int step = 5;
for ( int index = 0; index < arr.length; index += step )
{
    // check that index + step do not exceed array length here
    call( arr, index, step );
}

对于Java 8-Stream解决方案,请参阅@Anton's的答案。

答案 2 :(得分:0)

据我了解,您希望每次迭代都能获得n个数字。我愿意:

public String getN(String st, int n){

    ArrayList<String> res = new ArrayList<String>();
    for(int i = 0; i<(st.length/n),i++)
     String aux[n]= new String[n];
     for(int j = 0; j<n;j++){
      aux[j]=st[(i*n)+j]
     }
    res.add(aux(i));
    }

       return res.toString();
   }

现在不能尝试,但我认为它应该有用。