setString(listStr);
current = read();
skipSpaces();
boolean requireMore = false;
float[] numbers = null;
int cur = 0;
for (;;) {
if (current != -1) {
float v = parseNumber(false);
if (numbers == null) {
numbers = new float[1];
} else if (numbers.length <= cur) {
float[] tmpNumbers = new float[numbers.length * 2];
System.arraycopy(numbers, 0, tmpNumbers, 0, numbers.length);
numbers = tmpNumbers;
}
numbers[cur++] = v;
} else {
if (!requireMore) {
break;
} else {
throw new IllegalArgumentException();
}
}
skipSpaces();
requireMore = (current == sep);
skipSepSpaces(sep);
}
if (numbers != null && cur != numbers.length) {
float[] tmpNumbers = new float[cur];
System.arraycopy(numbers, 0, tmpNumbers, 0, cur);
numbers = tmpNumbers;
}
return numbers;