在這裏,我有充分的結果在我的字符串的Java - 分配結果的特定數量的一個字符串
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}
有沒有什麼辦法可以做到這一點。
謝謝。
在這裏,我有充分的結果在我的字符串的Java - 分配結果的特定數量的一個字符串
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}
有沒有什麼辦法可以做到這一點。
謝謝。
你可以做這樣的輔助性方法在一個String數組,你可以從你的「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的答案。
據我所知,你想每次迭代得到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();
}
現在不能嘗試,但我認爲它應該工作。
您可以使用Stream
offset
和limit
方法:
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偏移。
循環,子串和許多其他方式...當你顯示你已經嘗試過的東西時它也很有幫助。 – Abubakkar
請任何例子先生? – Wilson
我在這裏看不到字符串... – Fildor