Split ab bestimmter Stelle

reback

Mitglied
Hallo Forum,

ich habe ein kleines Probelmchen und weiß nicht wie ich es lösen soll. Evt. weiß von euch ja jemand eine Lösung:

Es geht sich um ein paar Zeilen:

Code:
String tmp,rechnung[];

tmp = "*/+-";
rechnung = tmp.split("");

Ziel ist es, jedes Zeichen in eine Stelle des Arrays zu schreiben. Jedoch Splittet er bereits vor dem ersten Zeichen, so dass folgendes Ergebnis raus kommt:

Code:
rechnung[0] = ""
rechnung[1] = "*"
rechnung[2] = "/"
rechnung[3] = "+"
rechnung[4] = "-"

Er schreibt quasi in das erste Array-Feld nichts rein und fängt erst beim zweiten an.
Gibt es eine Möglichkeit das zu umgehen/erst nach dem ersten zeichen anzufangen?

Ich hoffe Ihr versteht mich und die paar schnipsel Code reichen, da ich den gesamten Quelltext momentan auf einem Rechner habe der Offline ist.

Danke im Vorraus,
ReBack :toll:
 

FetterOtter

Bekanntes Mitglied
So adhoc fällt mir da auch keine gescheite Lösung ein.
Muss
Code:
rechnung
denn ein String[] sein? Wenn es ein char[] auch täte, dann könntest du es so lösen:
Java:
char[] rechnung;
String tmp = "*/+-";
rechnung = tmp.toCharArray();
 

reback

Mitglied
Also im Prinzip kommt mit JOptionPane eine Aufforderung eine Rechnung einzugeben. Diese soll dann z.B. "5*6" lauten. Dann ziehe ich einmal die Zahlen aus dem Array und danach die Sonderzeichen, indem ich alle Zahlen aus der eingabe entferne und mit tmp.split(""); an jeder Stelle Splitte.

Dann habe ich zwei Array's:

Java:
zahlen[0] = "5"
zahlen[1] = "6"

rechnung[0] = ""
rechnung[1] = "*"

in der Entsprechenden for-schleife ist das dann mit "Rechnung.length-1" gelöst bzw. der Counter fängt dann bei 1 an und nicht bei 0, was ich irgendwie aber unsauber finde.


Aber da habe ich dann noch eine andere Frage.

Sowohl
Java:
if(rechnung[i+1]=="*");
als auch
Java:
if(rechnung[i+1]=="\\*");
funktionieren nicht, obwohl rechnung[i+1] ein * in der Stelle des Arrays hat. Was mache ich hier falsch?
 

Natac

Bekanntes Mitglied
Aber da habe ich dann noch eine andere Frage.

Sowohl
Java:
if(rechnung[i+1]=="*");
als auch
Java:
if(rechnung[i+1]=="\\*");
funktionieren nicht, obwohl rechnung[i+1] ein * in der Stelle des Arrays hat. Was mache ich hier falsch?
Strings vergleicht man mit equals. Idealerweise auf dem Objekt aufgerufen, dass nicht null sein kann:

Java:
if("*".equals(rechnung[i+1])
 

Zet

Aktives Mitglied
Java:
if(rechnung[i+1]=='*');
' ' statt " ". Du vergleichst Chars, keine Strings.

Strings vergleicht man mit equals da hat Natac recht,
aber er vergleicht ja hier Char's - und bei primitiven Datentypen ist == in Ordnung, oder? :bahnhof:
 

reback

Mitglied
Ich bin mir jetzt unsicher..

Löse ich das mit einem char Array oder einem String Array? ^^ Dürfte doch am Erbegnis nichts ändern, außer das mit mal +1 und -1 an ein zwei Stellen einfügen muss?!
 

Zet

Aktives Mitglied
Zeige doch mal deinen Code.

mit
Java:
char[] rechnung = tmp.toCharArray();

Erstellst du ein Char-Array vergleichst also mit == '*'

Erstellst du ein String-Array musst du mit
Code:
StringArray.equals("*");
vergleichen.
 

reback

Mitglied
package taschenrechner;

Java:
import javax.swing.JOptionPane;

public class Rechnung {

	public static void main(String[] args) 
	{
		// Initialisierung der Variablen 
		String input,tmp,zahlen[],rechnung[];
		//char rechnung[];
		int i,i_rechnung=0;
		double zahl1=0,zahl2=0,erg=0;
		
		// Abfrage der Eingabe 
		input = JOptionPane.showInputDialog("Bitte geben Sie Ihre Rechnung ein!").replace(",", ".").replace(" ", "");
		tmp = input.replaceAll("0|1|2|3|4|5|6|7|8|9|\\,|\\.|", "");
		zahlen = input.split("\\*|\\/|\\+|\\-");	
		rechnung = tmp.split("");
		//rechnung = tmp.toCharArray();
		
		
		// Erst * und / ...
		
		for(i=0;i<rechnung.length-1;i++)
		{
			if("*".equals(rechnung[i+1])|"/".equals(rechnung[i+1]))
			{
				zahl1 = Double.parseDouble(zahlen[i]);
				zahl2 = Double.parseDouble(zahlen[i+1]);
				if("*".equals(rechnung[i+1]))
				{
					if(i_rechnung>0)
						erg = erg * zahl2;
					else
						erg = zahl1 * zahl2;
					i_rechnung++;
				}
				else
				{
					if(i_rechnung>0)
						erg = erg / zahl2;
					else
						erg = zahl1 / zahl2;
					i_rechnung++;
				}
			}
		}
		// ... dann + und -!
		for(i=0;i<rechnung.length-1;i++)
		{
			if("+".equals(rechnung[i+1])|"-".equals(rechnung[i+1]))
			{
				zahl1 = Double.parseDouble(zahlen[i]);
				zahl2 = Double.parseDouble(zahlen[i+1]);
				if("+".equals(rechnung[i+1]))
				{
					if(i_rechnung>0)
						erg = erg + zahl2;
					else
						erg = zahl1 + zahl2;
					i_rechnung++;
				}
				else
				{
					if(i_rechnung>0)
						erg = erg - zahl2;
					else
						erg = zahl1 - zahl2;
					i_rechnung++;
				}
			}
		}

		//TODO Rechnen(Punkt vor Strich-Regel beachten)

		JOptionPane.showMessageDialog(null, "Das Ergebnis lautet: " + erg);
	}

}

Mein Quelltext funktioniert auch, solange die Aufgaben nicht zu kompliziert werden :bloed:

Aufgaben: 5*5 = 25
Aufgabe: 5+5 = 10
Aufgabe: 5*5+5 = 30

Aber wenn ich jetzt ein bisschen mische wird schon kritisch..


Aufgabe: 5*5+5*5 = 130

Ich weiß auch noch nicht so ganz wie ich das Regeln soll :rtfm:
Ihr habt mir aber schon mal gut weiter geholfen :toll:

edit:

Achja und so sachen wie 5+5+2*5 gehen auch schief ^^
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
W LocalDate toString und nach Split falsch "erkannt"? Java Basics - Anfänger-Themen 8
sserio Split() -> Regex Frage. Java Basics - Anfänger-Themen 7
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
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
OnDemand Regex oder Split? Java Basics - Anfänger-Themen 5
I String.split regex Frage Java Basics - Anfänger-Themen 2
JavaClara Fehlermeldung bei split-Methode Java Basics - Anfänger-Themen 12
S String split Java Basics - Anfänger-Themen 12
Dimax String Split Java Basics - Anfänger-Themen 2
J Dynamisches Array durch split()-Funktion? Java Basics - Anfänger-Themen 3
D Kleine Probleme mit Split-Befehlen Java Basics - Anfänger-Themen 5
9 Error bei .split() Java Basics - Anfänger-Themen 2
S Methoden String: split Java Basics - Anfänger-Themen 5
T split innerhalb Klammern ignorieren? Java Basics - Anfänger-Themen 6
MR._FIRE_Flower String.split("(") geht nicht Java Basics - Anfänger-Themen 4
D Input/Output Split am Zeichen | Java Basics - Anfänger-Themen 2
W split()-Methode Java Basics - Anfänger-Themen 4
C Gleichung String Split Java Basics - Anfänger-Themen 6
agent47 Pattern split Java Basics - Anfänger-Themen 2
D BufferedReader/InputStreamReader/Split Java Basics - Anfänger-Themen 2
G String.split(".") Java Basics - Anfänger-Themen 3
F Methoden split() - Mehrere Zeichen Java Basics - Anfänger-Themen 5
A String Split Java Basics - Anfänger-Themen 4
K Split und ArrayList Java Basics - Anfänger-Themen 3
JAVAnnik split Methode Java Basics - Anfänger-Themen 1
K How to split my String Java Basics - Anfänger-Themen 2
L String array mit split füllen Java Basics - Anfänger-Themen 14
N split nullpoiner exception Java Basics - Anfänger-Themen 6
L Split + Zeilen einer Datei mit bestimmtem Inhalt löschen Java Basics - Anfänger-Themen 23
P CSV Datei in String Array -> Split -> New Array Java Basics - Anfänger-Themen 2
vandread String.split("\\") führt zu Error?! Java Basics - Anfänger-Themen 8
N Explode in Java (split). Komme nicht weiter. Java Basics - Anfänger-Themen 2
B Split, Exception - Obwohl es gehen MUSS Java Basics - Anfänger-Themen 3
S Probleme mit split Java Basics - Anfänger-Themen 5
N Probleme mit .split("\\.") Java Basics - Anfänger-Themen 6
N String [][] mit .split Java Basics - Anfänger-Themen 13
Helgon Regex Split Java Basics - Anfänger-Themen 2
B Array fehler bei string split Java Basics - Anfänger-Themen 4
L Methoden String.split nach Absätzen? Java Basics - Anfänger-Themen 8
S Split String für | Java Basics - Anfänger-Themen 2
K split() - Delimiter Java Basics - Anfänger-Themen 4
F Split Array auffüllen Java Basics - Anfänger-Themen 8
S Hexstring contains & split Java Basics - Anfänger-Themen 2
R String Delimiter (Split) einlesen Java Basics - Anfänger-Themen 9
R .split() - Problem Java Basics - Anfänger-Themen 5
0 String split und replace geht nicht Java Basics - Anfänger-Themen 17
T Syntax für .split mit Klammern Java Basics - Anfänger-Themen 2
T String Split? Java Basics - Anfänger-Themen 10
F String Split Problem mit "|" Java Basics - Anfänger-Themen 3
D String.split(...) Java Basics - Anfänger-Themen 4
Z split tut nicht, was es soll Java Basics - Anfänger-Themen 3
C Split Fehler? Java Basics - Anfänger-Themen 7
D BufferedWriter, split() und Zeilenumbrüche Java Basics - Anfänger-Themen 5
K Java Split mehrere Zeilen Java Basics - Anfänger-Themen 4
D BufferedReader und .split() Java Basics - Anfänger-Themen 3
Y split()-Methoden problem Java Basics - Anfänger-Themen 21
J String split-Funktion und Integer Java Basics - Anfänger-Themen 13
X nach split leerzeichen weg Java Basics - Anfänger-Themen 4
M Regex mit Split Java Basics - Anfänger-Themen 3
S String - Gegenteil von Split? Java Basics - Anfänger-Themen 2
L Java: split und trim Java Basics - Anfänger-Themen 6
D String.split(".") geht nicht? Java Basics - Anfänger-Themen 3
M split arbeitet nicht richtig Java Basics - Anfänger-Themen 2
D Split Java Basics - Anfänger-Themen 11
Eldorado Fehler bei String.split Java Basics - Anfänger-Themen 4
S String Split ohne Zeichen abzuschneiden Java Basics - Anfänger-Themen 7
MQue split()- Methode Java Basics - Anfänger-Themen 10
B Split() Funktion Java Basics - Anfänger-Themen 5
M String splitten mit split() Java Basics - Anfänger-Themen 4
T .split(";") nicht gleich große arrays werden erzeu Java Basics - Anfänger-Themen 2
S String split array.length Problem Java Basics - Anfänger-Themen 3
B String ordentlich trennen (regex, split())? Java Basics - Anfänger-Themen 11
J Problem mit Split und String Java Basics - Anfänger-Themen 3
G Probleme mit Split Java Basics - Anfänger-Themen 5
M String.split() und StringTokenizer Java Basics - Anfänger-Themen 2
ARadauer String.split -> unterschiedliche längen Java Basics - Anfänger-Themen 2
H Split läuft nicht wie ich will Java Basics - Anfänger-Themen 4
I <String>.split()? Java Basics - Anfänger-Themen 2
I String, Split, match, wo liegt mein Fehler ? Java Basics - Anfänger-Themen 4
S Worthäufigkeiten zählen nach String.split() Java Basics - Anfänger-Themen 5
F String split-Methode Java Basics - Anfänger-Themen 12
M split() mit anzahl zeichen Java Basics - Anfänger-Themen 2
R split ist komisch Java Basics - Anfänger-Themen 2
G Bei split die regex erhalten Java Basics - Anfänger-Themen 6
P Probleme mit split Java Basics - Anfänger-Themen 4
Q String split bei "" Java Basics - Anfänger-Themen 4
G Problem mit String.split(""); Java Basics - Anfänger-Themen 2
M Problem Dateiarbeit: split und trim Java Basics - Anfänger-Themen 4
C Collection in Verbindung mit String.split speicherlastig Java Basics - Anfänger-Themen 20
C String.split("") einzelne Positionen abfragen Java Basics - Anfänger-Themen 10
D String mit split teilen und leere Felder behalten Java Basics - Anfänger-Themen 4
O String mit split zerlegen Java Basics - Anfänger-Themen 6
G Split Operation: ein oder mehrere Leerzeichen Java Basics - Anfänger-Themen 7
E Was ist bei split() los? Java Basics - Anfänger-Themen 2
F Split und Satzzeichen Java Basics - Anfänger-Themen 2
M Split nur mit einem Kriterium? Java Basics - Anfänger-Themen 4
G Split String Java Basics - Anfänger-Themen 2
G BufferedReader - split-Methode Java Basics - Anfänger-Themen 6
G Habe bei String kein split()? Java Basics - Anfänger-Themen 7
B try & catch Problem mit Exception bzw String.split() Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben