Programmfehler...

XlabX

Mitglied
Hallo,
ich muss ein Java-Programm schreiben, dass einen Eingabestring einfach umkehrt und wieder ausgibt. Dies soll in einer eigenen Methode geschehen. Die Methode die ich in dem untenstehenden Quellcode verwendet habe funktioniert (habe es schon in der Mainmethode gestestet ;-) ). Mein Problem ist das er bei compilieren immer folgendes ausgibt :

Aufgabe32.java:19: reverse(java.lang.String, java lang String, int) in Aufgabe32 cannot be applied to ()


Dazu ist der Fehler mit dem " ^ " in der letzten unter dem reverse() vermerkt.

Der Quellcode ist:

import javax.swing.JOptionPane;
class Aufgabe32 {


String reverse (String inputString, String reversedString, int i) {
while (i < inputString.length() ) {
reversedString = inputString.charAt(i) + reversedString;
i++;
}
return reversedString;
}

public static void main(String[] args) {

String inputString = JOptionPane.showInputDialog("Hier einen String eingeben: ");
String reversedString ="";
int i = 0;

JOptionPane.showMessageDialog (null, reverse(), "Reversed String", JOptionPane.PLAIN_MESSAGE);
}
}


Vllt könnte mir einer sagen, was ich hier falsch gemacht habe?

Beste Grüße ;-)
 

Eldorado

Bekanntes Mitglied
Bitte pack deinen Quellcode bitte erstmal in Java-Tags: Siehe roter Text über der Eingabebox.

Du musst der Methode natürlich auch Parameter mitgeben:
Java:
Aufgabe32 a32 = new Aufgabe32();
JOptionPane.showMessageDialog (null, a32.reverse("a","b",1), "Reversed String", JOptionPane.PLAIN_MESSAGE);
und reverse auf einem Object der Klasse aufrufen

zudem: warum lässt du dir reservedString und i übergeben?
 
Zuletzt bearbeitet:

XlabX

Mitglied
Java:
import javax.swing.JOptionPane;
class Aufgabe32 {


String reverse (String inputString, String reversedString, int i) {
while (i < inputString.length() ) {
reversedString = inputString.charAt(i) + reversedString;
i++;
}
return reversedString;
}

public static void main(String[] args) {

String inputString = JOptionPane.showInputDialog("Hier einen String eingeben: ");
String reversedString ="";
int i = 0;

JOptionPane.showMessageDialog (null, reverse(), "Reversed String", JOptionPane.PLAIN_MESSAGE);
}
}[\JAVA]

Sry mein Fehler ;-)
 

Eldorado

Bekanntes Mitglied
in der main Methode...aber dir scheinen ziemlich die Grundlagen zu fehlen. Das macht man doch eigentlich schon lange vor while-Schleifen. Wenn ich jetzt alle deine Fehler korrigieren würde wäre es mein und nicht mehr dein Programm
 

XlabX

Mitglied
Java:
[code=Java]import javax.swing.JOptionPane;
class Aufgabe32 {


String reverse (String inputString, String reversedString, int i) {
while (i < inputString.length() ) {
reversedString = inputString.charAt(i) + reversedString;
i++;
}
return reversedString;
}

public static void main(String[] args) {

String inputString = JOptionPane.showInputDialog("Hier einen String eingeben: ");
String reversedString ="";
int i = 0;

JOptionPane.showMessageDialog (null, reverse(), "Reversed String", JOptionPane.PLAIN_MESSAGE);
}
}[\JAVA]


so das war jetz nochmal der quelltext ;-) was meinst du mit übergeben? das ich es oben in die methode nochmal reingeschrieben habe?
 

Eldorado

Bekanntes Mitglied
Nein. Wer erzählt denn sowas:
Java:
public String reverse(String input){
int i =0;
int reversedString = "";
//hier jetzt rumdrehen und mit den lokalen Variablen "rechnen" und dann halt zurückgeben.
}
Die Variablen in der main-Methode kannst du rausschmeißen(außer natürlich den zum einlesen) und natürlich das Object erstellen.
 

XlabX

Mitglied
hmm also ich hab es jetz folgendermaßen abgeändert nur es erscheint immer noch der gleiche fehler

Java:
import javax.swing.JOptionPane;
class Aufgabe32 {

	
	String reverse (String inputString) {
			int i = 0;
			String reversedString ="";
			
			while (i < inputString.length() ) {
				reversedString = inputString.charAt(i) + reversedString;
				i++;
				}
			return reversedString;
	}
			
	public static void main(String[] args) {
	
	String inputString = JOptionPane.showInputDialog("Hier einen String eingeben: ");	
			
	JOptionPane.showMessageDialog (null, reverse(), "Reversed String", JOptionPane.PLAIN_MESSAGE);
	}
}
 

Eldorado

Bekanntes Mitglied
Auch eine Möglichkeit, aber ich vermeide statischen Methoden immer soweit wie möglich, da es nicht in das Object-Konzept passt. Aber in dem Fall wäre es sinnvoll, da hast du Recht. Ich würde aber Leute die grade erst anfangen Java zu lernen eher von statischen Methoden abraten, weil sie dann oft zu oft genutzt werden. ("Ist ja einfacher ohne Object")
 

Eldorado

Bekanntes Mitglied
Du musst den eingelesenen String auch übergeben:
Java:
JOptionPane.showMessageDialog (null, reverse(inputString), "Reversed String", JOptionPane.PLAIN_MESSAGE);
 

XlabX

Mitglied
ah okay jetzt funktionierts :) sry wenns dich n bischen genervt haben sollte nur das hier ist unsere erste übung zu methoden und strings und deswegen sind meine kenntnisse natürlich sehr beschränkt. aber auf jeden fall schon mal 1000 dank ;-)
 

Ähnliche Java Themen

Neue Themen


Oben