String to int

B

ben-reisinger

Mitglied
Servus,
ich habe in einem Fenster ein Eingabefeld.
In dem Eingabefeld kann man nur Zahlen erwünscht, denn ich möchte Koordinaten berechnen.
Jedoch kann ich nicht Input1 + Input2 berechnen, da ich ja nicht zwei Strings berechnen kann.
Hat jemand eine Idee wie ich jenes Umsetzen kann.
Also kann ich ein String zu einem Integer "umwandeln"(?), wenn ja wie.
Vielen Dank schonmal
Lg
 
krgewb

krgewb

Top Contributor
Java:
int a = Integer.parseInt("123");
Du musst es aber den Fall abfangen, dass der Benutzer nichts eingegeben hat.
Java:
int a = Integer.parseInt("");
wird nämlich eine NumberFormatException werfen.
 
B

ben-reisinger

Mitglied
Java:
int a = Integer.parseInt("123");
Du musst es aber den Fall abfangen, dass der Benutzer nichts eingegeben hat.
Java:
int a = Integer.parseInt("");
wird nämlich eine NumberFormatException werfen.

Vielen Dank für deine Antwort.
Hat alles super geklappt.
Gibt es diese Funktion auch für Strings:
Wenn in dem String eine Zahl ist oder Sonderzeichen, dann ...
Eine möglichkeit wäre eine if abfrage wie z.B.:
String.contains und dann alle Zeichen, scheint aber, als würde es dort eine bessere Methode geben
 
krgewb

krgewb

Top Contributor
Ich weiß es nicht. Was es auf jeden Fall gibt, sind isDigit und isLetter.
Java:
System.out.println(Character.isDigit('e'));  // false
System.out.println(Character.isDigit('4'));  // true
System.out.println(Character.isLetter('e')); // true
System.out.println(Character.isLetter('8')); // false
 
Zuletzt bearbeitet:
B

ben-reisinger

Mitglied
Ich könnte es bestimmt auch mit .length machen und dann einer for-schleife die überprüft (für jeden char), ob eine Zahl oder Sonderzeichen vorhanden ist, aber da muss auch eine bessere Methode sein... ich weiß nur noch nicht wo
 
sascha-sphw

sascha-sphw

Bekanntes Mitglied
Java:
String pattern = "-?\\d+(\\.\\d+)?"; // prüft auf Ganz- oder Gleitkommazahlen, positiv oder negativ.
String number = "123.45";

if(number.matches(pattern)) {
    // continue
} else {
    // fail
}
 
L

LimDul

Top Contributor
Java:
String pattern = "-?\\d+(\\.\\d+)?"; // prüft auf Ganz- oder Gleitkommazahlen, positiv oder negativ.
String number = "123.45";

if(number.matches(pattern)) {
    // continue
} else {
    // fail
}
Das geht, schließt aber einige Fälle aus, die Java verarbeiten könnte. Bei Gleitkommazahlen kann java auch die String darstellung in Hex verarbeiten, außerdem auch die wissenschaftliche Darstellung. Siehe https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#valueOf(java.lang.String)

Der korrekte Reguläre Ausdruck für Double-Parsing sehe wie folgt aus laut Oracle:

Java:
final String Digits     = "(\\p{Digit}+)";
  final String HexDigits  = "(\\p{XDigit}+)";
  // an exponent is 'e' or 'E' followed by an optionally
  // signed decimal integer.
  final String Exp        = "[eE][+-]?"+Digits;
  final String fpRegex    =
      ("[\\x00-\\x20]*"+  // Optional leading "whitespace"
       "[+-]?(" + // Optional sign character
       "NaN|" +           // "NaN" string
       "Infinity|" +      // "Infinity" string

       // A decimal floating-point string representing a finite positive
       // number without a leading sign has at most five basic pieces:
       // Digits . Digits ExponentPart FloatTypeSuffix
       //
       // Since this method allows integer-only strings as input
       // in addition to strings of floating-point literals, the
       // two sub-patterns below are simplifications of the grammar
       // productions from section 3.10.2 of
       // The Java™ Language Specification.

       // Digits ._opt Digits_opt ExponentPart_opt FloatTypeSuffix_opt
       "((("+Digits+"(\\.)?("+Digits+"?)("+Exp+")?)|"+

       // . Digits ExponentPart_opt FloatTypeSuffix_opt
       "(\\.("+Digits+")("+Exp+")?)|"+

       // Hexadecimal strings
       "((" +
        // 0[xX] HexDigits ._opt BinaryExponent FloatTypeSuffix_opt
        "(0[xX]" + HexDigits + "(\\.)?)|" +

        // 0[xX] HexDigits_opt . HexDigits BinaryExponent FloatTypeSuffix_opt
        "(0[xX]" + HexDigits + "?(\\.)" + HexDigits + ")" +

        ")[pP][+-]?" + Digits + "))" +
       "[fFdD]?))" +
       "[\\x00-\\x20]*");// Optional trailing "whitespace"

  if (Pattern.matches(fpRegex, myString))
      Double.valueOf(myString); // Will not throw NumberFormatException
  else {
      // Perform suitable alternative action
  }

Für int würde es fast gehen, wenn man den Dezimalzentrenner und damit die Nachkommastellen weglässt, sowie das + Zeichen am Anfang erlaubt.
 
B

BestGoalkeeper

Bekanntes Mitglied
Oh, hier liegt aber einiges im Argen - ob eine Zahl vorliegt prüft man natürlich nicht mit regulären Ausdrücken:
Java:
import java.util.Scanner;

public class SimpleAdd {
	@SuppressWarnings("resource")
	public static String readString() {
		return new Scanner(System.in).nextLine();
	}

	public static void main(String[] args) {
		String z1, z2;
		double z3, z4, z5;
		long z6;
		System.out.print("Bitte a eingeben: ");
		z1 = readString();
		System.out.print("Bitte b eingeben: ");
		z2 = readString();
		try {
			z3 = Double.parseDouble(z1);
		} catch (NumberFormatException e) {
			System.out.println("Upps, a war keine Zahl.");
			return;
		}
		try {
			z4 = Double.parseDouble(z2);
		} catch (NumberFormatException e) {
			System.out.println("Upps, b war keine Zahl.");
			return;
		}
		z5 = z3 + z4;
		z6 = Math.round(z5);
		if (z5 == z6) {
			System.out.println("Das Ergebnis der Addition lautet: " + z6);
		} else {
			System.out.println("Das Ergebnis der Addition lautet: " + z5);
		}
	}
}
 
sascha-sphw

sascha-sphw

Bekanntes Mitglied
Das geht, schließt aber einige Fälle aus, die Java verarbeiten könnte.
Da hast Du vollkommen Recht, aber wir wissen ja nicht was der TE verarbeiten können möchte. :p

Ich erhebe mit meinem Beispiel keinen Anspruch auf Vollständigkeit. Sondern wollte nur ein Beispiel dafür bringen, was man machen könnte ohne über alle Chars iterieren zu müssen.

Das was der TE braucht kann er sich ja dann selber zusammen bauen.

Oh, hier liegt aber einiges im Argen - ob eine Zahl vorliegt prüft man natürlich nicht mit regulären Ausdrücken:
@BestGoalkeeper Willst Du das Oracle noch sagen? ;-)
 
L

LimDul

Top Contributor
Es hat beides sein Vor- und Nachteile:

Reguläre Ausdrücke
Vorteil: Performanter
Nachteil: Schwierig synchron zu halten, dass es all das durchlässt, was die jeweilige Parse-Funktion akzeptiert

Exception fangen
Vorteil: Man kann wirklich alles verarbeiten, was die die jeweilige Parse-Funktion akzeptiert
Nachteil: Exception + Stacktrace erzeugen ist eine relativ teuere Operation. In einer Massenverarbeitung ist das nicht umbedingt sinnvoll sich alleine darauf zu verlassen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 1
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
O Datentypen String teilen Java Basics - Anfänger-Themen 5
macle Rekursive String Methode, Gerade Zahlen rausfiltern Java Basics - Anfänger-Themen 10
D String value change listener Java Basics - Anfänger-Themen 2
I Wo am besten eine String Konstante initialisieren? Java Basics - Anfänger-Themen 5
F JMenuItem Kann nicht nach einem String benannt werden... Java Basics - Anfänger-Themen 11
B String to Float Java Basics - Anfänger-Themen 27
B Map<String, FilterMeta, wie Wert bekommen? Java Basics - Anfänger-Themen 4
Dimax stream in string[] speichern Java Basics - Anfänger-Themen 6
Dimax String Probleme Java Basics - Anfänger-Themen 12
H Wie wird ein String intern gespeichert? Java Basics - Anfänger-Themen 10
C String auf Dualzahl überprüfen Java Basics - Anfänger-Themen 5
L Mit Zahlen im String rechnen Java Basics - Anfänger-Themen 19
A final String verrechnen Java Basics - Anfänger-Themen 2
N String N-Gramme mit Stream erstellen Java Basics - Anfänger-Themen 7
A Implementierung von String toString methode() Java Basics - Anfänger-Themen 4
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
Z Methode zum Heraufinden von Anagrammen ohne Java API, Ausnahme String Java Basics - Anfänger-Themen 14
Dimax Erste Schritte String replace alle Zeichen Java Basics - Anfänger-Themen 10
F Auto String mit Array Name aus Datei... oder so ähnlich Java Basics - Anfänger-Themen 4
J Characters als String zusammenfassen Java Basics - Anfänger-Themen 3
D Input/Output Mehrzeiligen String aus Textdatei erstellen Java Basics - Anfänger-Themen 5
J zwei String Arrays miteinander vergleichen Java Basics - Anfänger-Themen 18
F String auf E-Mail kürzen Java Basics - Anfänger-Themen 11
J String aus einem Array entfernen Java Basics - Anfänger-Themen 10
S String index out of range Java Basics - Anfänger-Themen 11
L String in Do-While-Schleife Abbruchkriterium Java Basics - Anfänger-Themen 1
V int zu Integer und String Java Basics - Anfänger-Themen 6
X Erste Schritte String: Alle doppelten Leerzeilen entfernen Java Basics - Anfänger-Themen 21
J String Array zu Map<Character, List<Character>> mit Streams Java Basics - Anfänger-Themen 1
P Datenspeichern im String Java Basics - Anfänger-Themen 5
J String wird in GUI falsch ausgegeben Java Basics - Anfänger-Themen 10
S Nutzereingabe splitten und in string array wieder ausgeben. Java Basics - Anfänger-Themen 1
S String umwandeln Java Basics - Anfänger-Themen 6
S Ersetzen eines Asterix in einem String Java Basics - Anfänger-Themen 8
B String nach erstem Leerzeichen trennen Java Basics - Anfänger-Themen 7
G String wird nach Einlesen aus Datei nicht erkannt Java Basics - Anfänger-Themen 3
M String in Scanner einlesen Java Basics - Anfänger-Themen 6
R String vergleichen Java Basics - Anfänger-Themen 59
L String zerlegen & elemente hinzufügen Java Basics - Anfänger-Themen 5
FelixN RegEx aus einem String als String-Array zurückgeben Java Basics - Anfänger-Themen 8
Curtis_MC 2dimensionales Array als String ausgeben Java Basics - Anfänger-Themen 2
J Zeichen im String zählen Java Basics - Anfänger-Themen 3
J erstes Vorkommen eines Chars aus einem String entfernen Java Basics - Anfänger-Themen 3
S String richtig formatieren Java Basics - Anfänger-Themen 2
M String außerhalb der main-Methode Java Basics - Anfänger-Themen 4
N Fehler bei string Attribut! Java Basics - Anfänger-Themen 18
I String Repraesentation eines Objekts Java Basics - Anfänger-Themen 1
S Gesamten String in einer Zeile ausgeben Java Basics - Anfänger-Themen 2
J Umwandlung String zu ASCII-Wert und anders Java Basics - Anfänger-Themen 17
L String als ungültig deklarieren Java Basics - Anfänger-Themen 2
I char Array to String Java Basics - Anfänger-Themen 3
I converting boolean Array to String Array Java Basics - Anfänger-Themen 10
S String split Java Basics - Anfänger-Themen 12
B String vergleich Java Basics - Anfänger-Themen 3
C Java String Methode Java Basics - Anfänger-Themen 6
G String mit mehreren Attributen aufteilen Java Basics - Anfänger-Themen 6
Dimax String Split Java Basics - Anfänger-Themen 2
D Methode mit Übergabe double und Rückgabe String Java Basics - Anfänger-Themen 2
M String array durch Eingabe begrenzen Java Basics - Anfänger-Themen 7
J String in Datei schreiben Java Basics - Anfänger-Themen 4
B String zu einem bestehenden String hinzufügen Java Basics - Anfänger-Themen 9
K String in Integer umwandeln Java Basics - Anfänger-Themen 4
N Wie kann ich einen String wieder zusammensetzen und ausgeben lassen? Java Basics - Anfänger-Themen 9
T String an Methode zurückgeben Java Basics - Anfänger-Themen 2
T Fehlermeldung beim Versuch, einen String einzulesen Java Basics - Anfänger-Themen 4
M Input/Output JTextField Eingabe in String Variable speichern Java Basics - Anfänger-Themen 15
B HTML Datei einlesen und HTML Code in String wandeln Java Basics - Anfänger-Themen 19
B Rückgabe von zwei Werten: String und double Java Basics - Anfänger-Themen 14
C Probleme mit String-Vergleich Java Basics - Anfänger-Themen 4
B Frage zu: String... strings -> Ungleiche Anzahl an Parameter? Java Basics - Anfänger-Themen 4
J String Methode chars() Java Basics - Anfänger-Themen 8
J Wie kann ich z.B. einem int-Wert einen String-Wert zuweisen? Java Basics - Anfänger-Themen 2
T Dateiinhalt wird nicht in String eingelesen Java Basics - Anfänger-Themen 4
R String index out of range: -1 beim Datei Parsen Java Basics - Anfänger-Themen 15
P Objekt aus String-Array erzeugen Java Basics - Anfänger-Themen 104
B Mit webservice a) String auf Webseite ausgeben b) Weiterleitung auf andere Seite Java Basics - Anfänger-Themen 10
M Konvertierung String -> double Java Basics - Anfänger-Themen 8
V return String[] führt zu [Ljava.lang.String;@50675690 Java Basics - Anfänger-Themen 7
B String anpassen / maskieren Java Basics - Anfänger-Themen 3
D Eingaben in String Array einlesen Java Basics - Anfänger-Themen 12
J Mit for Schleife einen String Rückwärts befüllen Java Basics - Anfänger-Themen 9
H java string aufgabe Java Basics - Anfänger-Themen 10
R Objekte aus Array als String + kommasepariert speichern Java Basics - Anfänger-Themen 12
scratchy1 Array sortieren und dann String-Repräsentation ausgeben Java Basics - Anfänger-Themen 2
O String von vorne nach hinten an einem Zeichen Java Basics - Anfänger-Themen 10
F Buchstaben in einem String vertauschen (Ohne replace) Java Basics - Anfänger-Themen 10
A Boolean in String Java Basics - Anfänger-Themen 2
der_Schokomuffin Hilfe gesucht: String wird auf null gesetzt! Java Basics - Anfänger-Themen 17
F The constructor Vehikel(String, int) is undefined warum?? Java Basics - Anfänger-Themen 4
R Methoden Entferne alle identische Knoten (Typ String) aus verkettete Liste Java Basics - Anfänger-Themen 8
A Wie gebe ich bei android eine string im programm aus? Java Basics - Anfänger-Themen 4
Dimax Erste Schritte String Eingabe Prüfen Java Basics - Anfänger-Themen 11
H Anzahl verschiedener Buchstaben im String Java Basics - Anfänger-Themen 41
F Ein Datum (int) durch Methode als String formatieren Java Basics - Anfänger-Themen 2
H String und Zahl Java Basics - Anfänger-Themen 10
R Eingabe String umwandeln zu Integer Werten Java Basics - Anfänger-Themen 8
M String vergleichen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Anzeige

Neue Themen


Oben