wenn in dem String nur genau ein (Frank) Ausdruck vorkommt, kannst du doch die indexOf Funktion von String verwenden, dann die "Klammer auf" und die "Klammer zu" suchen und dann damit mit der substring Methode von String dein gewünschtes Wort extrahieren ...
Also pseudocodemäßig so ...
Code:
String string = new String("Hallo (Frank)");
int klammerBegin = string.indexOf("(");
int klammerEnd = string.indexOf(")");
string = string.substr(klammerBegin+1, klammerEnd);
Also ich hab jetzt mal grob durch die ganzen Foren hindurch gesucht, doch nie was gefunden (oder übersehen) was mir hilft. Ich will im Prinzip auch nur aus einer Variablen zwei Zahlen auslesen.
z.B.
Wenn ich eingib:
5646 88889
Dann soll er bis zum Lehrzeichen die Zahlen in die var. Zahl1 schieben und die Zahl dannach eben in var. Zahl2 schieben.
Die Frage is bestimmt schon mal aufgetaucht doch in der großen Menge hab ichs leider nicht gefunden bzw. übersehen .
import java.util.*;
class WarumMachIchDasEigentlich
{
public static void main(String args[])
{
String eingabe = "5646 88889";
StringTokenizer st = new StringTokenizer(eingabe);
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
System.out.println(a);
System.out.println(b);
}
}
public String[] split(String regex)
Spaltet diese Zeichenkette bei den Treffern des gegebenen regulären Ausdruckes auf.
Rechtsbündige leere Zeichenketten sind nicht in dem resultierenden Array eingeschlossen.
Beispiel
Die Zeichenkette "boo:and:foo" z.B. erbringt die folgenden Resultate mit diesen Ausdrücken:
Code:
Regex Resultat
: {"boo", "and", "foo"}
O {"b", "", ":and:f"}
Parameter: regex - der abgrenzende reguläre Ausdruck.
Rückgabe: das Array der Zeichenketten berechnet durch das Aufspalten dieser Zeichenkette
bei den Treffern des gegebenen regulären Ausdruckes.
import java.util.*;
class WarumMachIchDasEigentlich
{
public static void main(String args[])
{
String eingabe = "5646 88889";
StringTokenizer st = new StringTokenizer(eingabe);
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
System.out.println(a);
System.out.println(b);
}
}
Und wie kann ich sagen, dass das Programm mir zwischen den Zahlen ein z.b. + oder / auslesen soll?
Wär nett wenn einer mir den Zitierten code erweitern könnte
Also bist jetzt hat alles super geklappt. :toll:
Nur, ich will jetzt was neues ausprobieren und weis nicht wie ich da ran gehen soll.
In meinem Mini-Taschenrechner kann ich nur eine Eingabe wie folgt machen:
Zahl1 Opperator Zahl2 (Dabei muss immer ein Leerzeichen zwischen drin sein)
Nun ist meine Frage wie ich dies abwenden kann, um alles, ohne Leerzeichen, eintippen zu können.
Hier ist der Code von meiner Eingabe:
Code:
//------------------------------Eingabe----------------------------------------
System.out.print("Gebe Zahle1 Opperator Zahl2 ein: ");
zahl =Konsolenabfrage.readLine();
// Splitten
StringTokenizer st = new StringTokenizer(zahl);
int zahl1 = Integer.parseInt(st.nextToken());
String operator = st.nextToken();
int zahl2 = Integer.parseInt(st.nextToken());
Würd mich freuen wenn ihr mir weiter helfen könntet.
Mit freundlichen Grüßen
Hab jetzt keine Lust drüber nachzudenken. Deshalb nur en Ansatz. Schau einfach in dem String nach ob und wo eben eins der möglichen OperatorenZeichen ist und dann eben mit substring oder was es da bei StringTokenizer eben gibt
Bei StringTokenizer gibt's dies: StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code.
It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.
:wink:
Wenn du keine Lust hast, nachzudenken, dann bist du meines Erachtens hier falsch, denn in der Programmierung muss mann nachdenken, und das weis sogar ich als totaler Anfänger.
Ich habe nicht umsonst meine Code reinkopiert.
Es wäre schön wenn mir jemand eine Lösung (in Form eines Cods) vorschlagen würde, natürlich nur unter der Forraussetzung auch mal Nachdenken zu wollen.
Ja. Sorry. So meinte ich es auch nicht. Wollte mich da jetzt nur nicht komplett reindenken. Deshalb hab ich halt mal geschrieben, was mir so in den Sinn kam dazu.
Außerdem hab ich dir ja nen Ansatz gegeben, dem du nachgehen kannst...
Aber OK. Ich versuch mich für die Zukunft zu bessern