string in charArray umwandeln

Status
Nicht offen für weitere Antworten.

norroy

Aktives Mitglied
Schönen guten Abend zusammen

Ich hätte ein kleines Problem. Ich code momentan ein Programm, welches die Grundoperationen (+ - * /) der komplexen Zahlen ausführt. Ich habe mir überlegt das ich nun den Benutzer auffordern könnte die gewünschte Operation
(zB. (a+bi)+(c+di) ) einzugeben, diesen string einzulesen, dann in ein charArray umzuwandeln und die benötigten Zahlen (a, b, c, d) daraus auszulesen um damit weiterrechnen zu können.
Genau mit diesem Teil des Programms habe ich auch meine liebe Mühe, ich kann zwar den string einlesen, jedoch ist es mir ein Rätsel wie ich ihn in ein Array umwandeln soll und daraus auszulesen.
Bei mir sieht das momentan so aus:

Code:
	void einlesen(){
		InputStreamReader eingabestrom = new InputStreamReader (System.in); 
    	BufferedReader eingabepuffer = new BufferedReader (eingabestrom); 
    	
    	String zahlen = "";
    	try {
			zahlen = eingabepuffer.readLine();
			} catch (IOException e){
				e.printStackTrace();
			}
		String[] zahlentabelle =new String[12];
		
    	zahlentabelle.toCharArray(zahlen);
    	int a = Integer.parseInt(zahlen.substring(1));
    	int b = Integer.parseInt(zahlen.substring(3));
    	int c = Integer.parseInt(zahlen.substring(8));
    	int d = Integer.parseInt(zahlen.substring(10));
    	String operation = Integer.toString(zahlen.substring(6));
    	
    	if(operation.equals("+"))
    		addition();
    	if(operation.equals("-"))
    		subtraktion();
    	if(operation.equals("*"))
    		multiplikation();
    	if(operation.equals("/"))
    		division();

Ich habe jedoch den Verdacht das die Zahlen a, b, c und d und auch die Operation welche in
String operation = Integer.toString(zahlen.substring(6));
ausgelesen werden sollte absolut nicht richtig definiert sind. Kann mir jemand helfen?
Danke

p.s. wem komplexe Zahlen nichts sagen: wikipedia hilft :bae:
 

diggaa1984

Top Contributor
also mit dem Char-array das is denkbar leicht :D
Code:
	charArray = <String>.toCharArray()

wenn du den Nutzer die Möglichkeit gibts derart kompelxe Ausdrücke einzugeben um am Ende diese zu berechnen, solltest dir absolut sicher sein, was dort eingegeben werden kann um es irgendwie zu filtern/parsen/scannen etc.

wenn der Nutzer statt einstelligen zweistellige Zahlen nutzt, so verschieben sich einige Indizes im String, bzw dann im charArray
 
S

SlaterB

Gast
für einstellige SubStrings geht auch zahlen.substring(3,4) oder so,
ausprobieren! (nicht gleich mit Integer.parseInt parsen sondern den String ausgeben)


wenn die Zahlen beliebig lang sein können, vielleicht noch beliebig per + - usw kombiniert, dann hast du eine sehr komplexe Aufgabenstellung,

schau hier mal rein
http://www.java-forum.org/de/viewtopic.php?t=13378
und nicht an der Komplexität verzweifeln,

für den Anfang könnte evtl. nur die Methode
> private List<Object> tokenize( String formula ){
in der Klasse Parser für dich interessant sein, ab Zeile 385,

oder auch die allgemeinen Beschreibungen am Anfang
 

norroy

Aktives Mitglied
damn, du hast recht... aber wie kann ich dies umgehen? Wie kann ich festlegen bis wohin denn die Zahl nun geht und wo die nächste beginnt?
Und zu deiner Hilfe: danke! Jedoch ist mir eben aufgefallen das mir ein char-array nicht wahnsinnig viel bringt wenn die Zahlen zweistellig werden da der Datentyp char nur ein unicode-zeichen aufnehmen kann. (glaube ich mich zu erinnern).
Und so ändert sich meine Fragestellung in: wie kann ich aus einem String-array den ganzen Ausdruck auslesen?
 

Landei

Top Contributor
Mal ganz ehrlich: Das ist mächtiger Aufwand. Wäre es nicht eventuell besser, so etwas wie einen Taschenrechner zu schreiben, der *zwei* Eingabefelder (real, imaginär) hat? Damit sparst du dir das ganze String-geparse, und rechnen kann man damit genauso gut...
 

norroy

Aktives Mitglied
böö, das wäre ja einfach :D ne Scherz, ich möchte es ganz gern in der*schönen* Version versuchen. Wenn ich daran wirklich scheitern sollte komme ich auf deinen Tipp zurück, versprochen :D
 

norroy

Aktives Mitglied
Übersehen nicht, nicht ganz schlau drauss geworden würde es eher treffen. Ich programmiere eben nicht so häufig, wir haben das mal ein halbes Jahr in der Schule behandelt und jetzt ein Jahr später wird das ganze für dieses Programm wieder ausgegraben.
Würde es dir also etwas ausmachen das ganze genauer zu erklären?
herzlichsten Dank
 

norroy

Aktives Mitglied
Also ich hätte mir mal eine Methode überlegt um die mehrstelligen Zahlen aus dem string-array auszulesen, jedoch habe ich *etwas* Mühe sie in Code-Form umzusetzen und ob sie funktioniert weiss ich auch nicht.
Jedenfalls würde es etwa so funktionieren, dass Feld für Feld des Arrays durchgegange wird auf der Suche nach einzelnen aufeinanderfolgenden Ziffern und diese schliesslich zusammengesetzt würden.
Aber wie gesagt, ich kann die Idee nicht in Code übersetzen. Gibt es dafür überhaupt entsprechende Methoden? Oder kommen sich die verschiedenen Datentypen ins Gehege?
Besten Dank für eure Meinungen und Tipps.
 
S

SlaterB

Gast
> Jedenfalls würde es etwa so funktionieren, dass Feld für Feld des Arrays durchgegange wird auf der Suche nach einzelnen aufeinanderfolgenden Ziffern und diese schliesslich zusammengesetzt würden.

genau darum geht auch in der Methode, auf die ich hingewiesen habe,
speziell das Zahlen-suchen und auslesen z.B. in Zeile 414 bis 433,

ich kann mir allerdings sehr gut vorstellen, dass das zu schwer zum verstehen ist,
alles erklären ist aber auch keine effiziente Methode, für mich zumindest nicht ;)
dann doch lieber viel ausprobieren
 

ARadauer

Top Contributor
versteh nicht, dass viele anfäger immer taschenrechner programmieren wollen,... sowas is nicht gerade einfach....
 

diggaa1984

Top Contributor
wir ham das auch im 1. semester machen müssen ... über bäume etc. .. aber gut wurden uns ja die theoretischen grundlagen gegeben :D
 

norroy

Aktives Mitglied
Ich will keinen Taschenrechner programmieren, ich muss!! einen Taschenrechner programmieren.
Und ja, einfach ist es wirklich nicht gerade... grml...
 

diggaa1984

Top Contributor
hat man euch da keine hinweise gegeben? was ihr nutzen könnt, datenstrukturen und sowas? muss der ausdruck beliebig komplex sein (klammerung) oder is die anzahl der operanden beschränkt? irgendwas was dir die arbeit erleichtern könnte? :roll:
 

norroy

Aktives Mitglied
nunja, der Auftrag lautete "programmiert ein Programm welches die Grundoperationen der komplexen Zahlen ausführen kann!" komplexe Zahlen haben normalerweise die Form (a+bi)+(c+di), wobei a, b, c und d beliebig grosse und komplexe Zahlen sein können, irrationale Zahlen werden jedoch nicht verwendet (zumindest in meinem Programm) und die Grundoperationen werden zwischen den zwei Klammern eingesetzt.
Mein Problem ist jedoch weiterhin dass ich aus dem eingelesenen String ein String-array gemacht habe und aus diesem sollte ich die Zahlen auslesen können.
Kann mir jemand helfen?
 
S

SlaterB

Gast
in dieser Aufgabenstellung steht aber nicht unbedingt, dass du nicht mehrere Eingabefelder und vielleicht ne ComboBox für die Rechenoperation verwenden darfst,
dann entfällt jedes Parsen

> böö, das wäre ja einfach ne Scherz, ich möchte es ganz gern in der*schönen* Version versuchen.

kannst du gerne machen, aber dann solltest du das auch wirklich selber machen und nicht deine Extra-Wünsche durch andere programmieren lassen..

also, danach zu fragen ist immer noch legitim, aber bitte im Ton 'ich möchte gerne Extras' und nicht 'ich muss!'
 

norroy

Aktives Mitglied
Nun gut, dann werde ich eben das ganze in der "einfachen" Version machen.
Herzlichen Dank an alle.
 

Oli

Top Contributor
Hallo,

ja das ist leider scheinbar eine beliebte Aufgabenstellung bei den Profs...
Die Theorie ist ja einfach, aber das dann in die Praxis umzusetzten ist gerade für Neulinge sehr schwer (ich sprech da aus eigener Erfahrung).

Nun ich würde versuchen die Zahlen einzeln einzulesen (JOptionPane würde sich da anbieten) und dann die Operation auswählen lassen.

Ich denke so kommst Du am schnellsten und einfachsten zum Ziel.

Ich werde heute abend mal schauen, wenn ich mich nicht allzusehr täusche, habe ich das auch mal machen müssen und ich denke den Code sollte ich noch haben, ich würde ihn dann hier reinstellen.

Grüße Oli
 
S

SlaterB

Gast
JOptionPane ist in der Benutzung mühsam,
ich kenne kaum ein sinnvolles Programm, bei dem ständig Unterfenster aufgehen,

man stelle sich vor, dass würde hier im Forum für jedes Posting passieren..,

TextFelder oder TextAreas wie beim QuickReply hier,
für den Taschenrechner mehrere, die man alle beliebig wieder bearbeiten kann,
und am Ende ein Button 'Berechnen' oder so
 

Oli

Top Contributor
Hier geht´s ja um eine Übung. Da brauchts denk ich kein hochentwickeltes GUI. Was hier wichtig ist ist die Umsetzung der arithmetischen Funktionen auf kopmplexe Zahlen. Und da würde ich mit JOptionPane arbeiten.

Warum das mühsam sein soll kann ich auch nicht wirklich nachvollziehen. Es is meiner Meinung nach schnell und einfach und in diesem Fall zielführend.

Grüße Oli
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Methoden String in charArray verwandeln? Java Basics - Anfänger-Themen 5
B String einem Chararray zuweisen Java Basics - Anfänger-Themen 2
G Konvertierung von charArray in String funzt net Java Basics - Anfänger-Themen 3
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
D String Groß/Kleinschreibung Ignorieren Java Basics - Anfänger-Themen 4
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
Kartoffel_1 String transformation Java Basics - Anfänger-Themen 7
H String-Operation replace() - Zeichenkette verdoppeln Java Basics - Anfänger-Themen 2
K String analysieren Java Basics - Anfänger-Themen 27
Beowend String zu Date parsen Java Basics - Anfänger-Themen 1
Beowend String auf Satzzeichen überprüfen? Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
I Sass Compiler und String erhalten? Java Basics - Anfänger-Themen 7
Avalon String in Double bzw. Währung konvertieren Java Basics - Anfänger-Themen 6
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
N String überprüfen Java Basics - Anfänger-Themen 3
E String zerlegen aus args Java Basics - Anfänger-Themen 1
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
J String Filter Java Basics - Anfänger-Themen 5
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D 2D Char Array into String Java Basics - Anfänger-Themen 2
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
I Zerlegen von String Java Basics - Anfänger-Themen 3
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
I String Java Basics - Anfänger-Themen 4
I API - zurückgegebener JSON String lesen und in Entity konvertieren Java Basics - Anfänger-Themen 2
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
M Kommandozeilenparamter als EINEN String werten Java Basics - Anfänger-Themen 5
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
HolyFUT Input/Output Leerzeichen aus String entfernen - klappt nicht! Java Basics - Anfänger-Themen 13
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
Alen123 String wiederholen mit Schleifen Java Basics - Anfänger-Themen 1
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
T String splitten Java Basics - Anfänger-Themen 3
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
T Platzhalter in String? Java Basics - Anfänger-Themen 14
M String mit Variable vergleichen Java Basics - Anfänger-Themen 9
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
M Wie kann eine Methode (string) eine andere Methode (void) mit zufälligen int-Werten aufrufen? Java Basics - Anfänger-Themen 4
P9cman Vokale in einem String überprüfen mittels Rekursion Java Basics - Anfänger-Themen 8
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
R Ein Multidimensionales String Array initialisieren und Deklarieren Java Basics - Anfänger-Themen 2
H String Repräsentation eines Rechtecks mit Instanz-Methode Java Basics - Anfänger-Themen 8
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
S String mit Int input vergleichen Java Basics - Anfänger-Themen 5
C String/Char-API Java Basics - Anfänger-Themen 13
U Char zu einem String machen Java Basics - Anfänger-Themen 1
B Anzahl Nullen uns Einsen in String ermitteln Java Basics - Anfänger-Themen 3
T Leerzeichen im String entfernen Java Basics - Anfänger-Themen 6
Jose05 Nullpointerexception bei Umwandlung von String zu int Java Basics - Anfänger-Themen 2
O Ich habe einen String und soll mit matches schauen, ob ein Buchstabe zu einer geraden ANzahl im String vorkommt, wie soll das gehen? Java Basics - Anfänger-Themen 7
M String beim einlesen formatieren Java Basics - Anfänger-Themen 12
N null in String replacen Java Basics - Anfänger-Themen 16
R Compiler-Fehler JTable mit XML befüllen | The constructor JTable(Object[], String[]) is undefined Java Basics - Anfänger-Themen 10
M Eclipse kennt keine String Klasse mehr Java Basics - Anfänger-Themen 1
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
D String mit int multiplizieren? Java Basics - Anfänger-Themen 16
H Überprüfen ob String Array leer ist Java Basics - Anfänger-Themen 4
A Korrigierte <String> Liste zurückgeben Java Basics - Anfänger-Themen 22
C In String, Buchstaben ersetzen durch andere Buchstaben Java Basics - Anfänger-Themen 26
Poppigescorn String mit mehreren Wörtern füllen? Java Basics - Anfänger-Themen 4
I String Expression mit Java validieren (true / false) Java Basics - Anfänger-Themen 34
B String - Wörter finden, welches Punkt und entsprechender Pre / Suffix hat? Java Basics - Anfänger-Themen 30
T Maximale Anzahl von Konsonanten im String Java Basics - Anfänger-Themen 6
H String verschlüsseln - eigener Algorithmus Java Basics - Anfänger-Themen 104
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
J Eintrag Combobox über einen String auswählen Java Basics - Anfänger-Themen 3
K mit String.splitt(",") ganzen Satz erhalten? Java Basics - Anfänger-Themen 3
K Wie String prüfen ob drei mal das gleiche Zeichen vorkommt? Java Basics - Anfänger-Themen 7
I Validation, ob String ein Wert aus einem Enum enthält Java Basics - Anfänger-Themen 3
D String und char in String speichern Java Basics - Anfänger-Themen 5
A ObservableList<String> Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben