Я просто хочу добавить что-то: JavaScript не поддерживает lookbehinds как (?<= )
или (?<! )
.
Но он поддерживает lookaheads, такие как (?= )
или (?! )
.
Грубый, хакерский и не будет работать с негативами, но вы можете сделать работу, чтобы укрепить ее:
private static double toDouble(byte[] bs) {
boolean onLeft = true;
double left = 0;
double right = 0;
for (byte b : bs) {
if (b == '.') {
onLeft = false;
} else if (onLeft) {
left *= 10;
left += b - '0';
} else {
right += b - '0';
right /= 10;
}
}
return left + right;
}
И:
System.out.println(toDouble(new byte[] { '1', '1', '.', '1' }));
Урожайность 11,1.