Ho trovato molte informazioni sulla conversione di informazioni di byte grezzi in un formato leggibile dall'uomo, ma ho bisogno di fare il contrario, ovvero convertire la stringa "1,6 GB" nel valore lungo 1717990000. Esiste un modo in-built/ben definito per farlo, o dovrò praticamente girare il mio?Java - Converti dimensioni leggibili da lettura in byte
[Edit]: Ecco il mio primo tentativo ...
static class ByteFormat extends NumberFormat {
@Override
public StringBuffer format(double arg0, StringBuffer arg1, FieldPosition arg2) {
// TODO Auto-generated method stub
return null;
}
@Override
public StringBuffer format(long arg0, StringBuffer arg1, FieldPosition arg2) {
// TODO Auto-generated method stub
return null;
}
@Override
public Number parse(String arg0, ParsePosition arg1) {
return parse (arg0);
}
@Override
public Number parse(String arg0) {
int spaceNdx = arg0.indexOf(" ");
double ret = Double.parseDouble(arg0.substring(0, spaceNdx));
String unit = arg0.substring(spaceNdx + 1);
int factor = 0;
if (unit.equals("GB")) {
factor = 1073741824;
}
else if (unit.equals("MB")) {
factor = 1048576;
}
else if (unit.equals("KB")) {
factor = 1024;
}
return ret * factor;
}
}
Mare vedi bo koo, Andre! –
La tua soluzione confonde i kilobyte con kibibyte, megabyte con mebibyte e gigabyte con gibibyte. – gilbertpilz