Java Funktion schreiben?
Eine Funktion isEqual, die zwei Parameter vom Typ String entgegen nimmt und diese vergleicht. Wenn beide Werte gleich sein sollten, soll die Funktion true als Ergebnis liefern, ansonsten false.
Wie lautet diese Funktion in Java?
4 Antworten
public boolean isEqual(String s1, String s2) {
return s1.equals(s2);
}
Meiner Meinung nach ist die Methode aber völlig unnötig, da man einfach direkt String#equals nutzen könnte.
Schau mal in die Java String-Klasse und überlege dir mal, welche Funktion du da eventuell nutzen könntest.
Überlege Dir, wann zwei Strings gleich sind. Dies ist doch der Fall, wenn alle Zeichen in beiden Strings gleich sind, oder? Davor kann mensch noch schauen, ob die beiden Strings überhaupt gleich lang sind, denn nur dann können sie gleich sein.
public static boolean isEqual(String a, String b) {
if (a.length() != b.length()) return false;
int l = a.length();
for (int i = 0; i < l; i++) {
if (a.charAt(i) != b.charAt(i)) return false;
}
return true;
}
Bei Rückfragen gerne kommentieren.
Okay, also hier geht es um eine Funktion predecessor, welche einen int entgegennimmt und den Vorgänger als Ergebnis liefert. Ich habe:
int predecessor (int i) {
return i-1;
}
Eingabe: predecessor(1337,0);
Ausgabe: Error:
| method predecessor in class cannot be applied to given types;
| required: int
| found: int,int
| reason: actual and formal argument lists differ in length
| predecessor(1337,0);
| ^---------^
Eingabe: predecessor(-2147483648);
Ausgabe: 2147483647
stimmt das?
Im Prinzip ist deine Implementierung richtig, aber es zeigen sich in dem von dir geposteten "log" zweierlei Probleme.
Eingabe: predecessor(1337,0);
Wie der Fehlermedlung zu entnehmen ist, gibt es eine solche Methode nicht. Deine Methode hat die Parameterliste (int) und nicht (int, int) - Du darfst nur eine Zahl übergeben.
Das zweite Problem liegt darin, dass Zahlen in der Informatik üblicherweise begrenzt sind. Der Int in Java ist 32 bit groß, die kleinste Zahl ist also 2^31 und die größte Zahl 2^31-1. Du übergibst beim zweiten Mal genau diese kleinste Zahl. Was soll deine Methode also machen, es gibt doch keinen predecessor. Den Versuch, trotzdem 1 abzuziehen, gibt dann die größte mögliche Zahl, es fängt also einfach "wieder von vorne an".
If(Wert1.equals("Hallo") && Wert2.equals("Hallo"){
return true;
{
Else
{
return false;
}
Ungefähr so, die Funktion müsste da noch darüber
Also z.B. public void Parameterübergabe(String wert1,wert2)
Ungefähr so, ich habe leider nicht so viel Java erfahrung.
Ich sehe auch gerade dass die anderen Antworten besser aussehen, also ist meins vermutlich völliger quatsch :( ich wollte es nur versuchen xd.
Danke dir. Hätte eine Frage zu einer anderen Funktion, kann ich sie dir stellen?