3 Stimmen

Kann eine Ganzzahl immer als Long analysiert werden?

Ich habe eine Liste von Zeichenketten in Java, die in eine Textdatei geschrieben werden sollen. Diese Zeichenketten sind jeweils mit einem Typ versehen - in diesem Fall interessieren mich Zeichenketten, die long s und int s. Ich möchte diese Zeichenfolgen zurück in einen numerischen Typ konvertieren, bevor ich sie schreibe, aber ich möchte die Codeduplizierung minimieren. Ich habe vor, jede Zeichenkette, die als Integer oder Long Integer markiert ist, zu analysieren, indem ich Long.parseLong() .

Meine Frage ist diese: gibt es irgendwelche Situationen, in denen eine gültige ganze Zahl nicht als eine lange parsen wird? Mir fällt keine ein (außer vielleicht "1000L" oder so), aber meine Erfahrung in diesen Dingen hat mich gelehrt, dass es oft Nuancen gibt, die ich übersehe.

6voto

Chris Kooken Punkte 31616

Ja, Ganzzahlen können immer in long umgewandelt werden, aber long kann nicht immer in int umgewandelt werden.

Ein int ist eigentlich eine 4-Byte-Ganzzahl und ein long ist 8 Bytes groß. Mit einem Long erhält man also 4 Bytes mehr als mit einem int.

3voto

Long.parseLong("1000L") führt zu einer NumberFormatException - es akzeptiert string-kodierte numerische Werte, nicht unbedingt Java-Zahlenliterale (obwohl es eine große Überschneidung gibt).

Aus diesem Grund Long.parseLong umfasst Integer.parseInt ganz genauso wie die Werte von int sind eine echte Teilmenge der Werte von long .

Viel Spaß beim Kodieren.

1voto

DNA Punkte 40967

Dies sollte in Ordnung sein, da ints eine Untermenge von longs sind.

0voto

ratchet freak Punkte 45968

Überprüfung der Beschreibung der beide Methoden

die Antwort ist nein (außer wenn l oder L nach der Zeichenkette erscheint)

0voto

Peter Lawrey Punkte 511323

Jede mögliche int Wert kann in einer long ou double (oder BigInteger)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X