2016-05-22 22 views
0

Ich muss den Rückgabewert der Methode überprüfen, wenn sie dem Wert einer Zeichenfolge entspricht, die entweder "Ja" oder "Nein" ist, oder sollte ich eine Regex verwenden, die mit dem Muster der Zeichenfolge übereinstimmt, dh Ja oder Nein.Wie überprüft man den Rückgabewert der Methode mit dem Wert der Zeichenkette?

So essentialy, ich versuche, auf diese Weise if ((ru.getTest()). equals (("Ja") || („Nein“))) {...... zu schreiben

Ist es so, ich sollte fortfahren oder falsch liegen?

Hinzufügen zu.

Ich möchte eine detaillierte Erklärung meiner Frage veröffentlichen.

if (ru.getTest(). Equals ("Ja/oui") || ru.getTest(). Equals ("no/non")),

Es ist nicht nur Ja, aber zusammen mit das französische Literal fügte hinzu. Also, wenn (die obige Bedingung erfüllt ist), sollte die Französisch wörtlichen Teil trimmen und halten nur die ‚Ja‘ oder ‚Nein‘ ..

Ich habe versucht, mit diesem:
if ((ru.getTest()) .equals ("Ja/Oui") || (ru.getTest()). equals ("Nein/Nicht")) { Test = ru.getTest(). substring (0, Test.indexOf ('/'));

Bitte korrigieren Sie mich Wenn ich falsch liege.

+0

Verwenden Sie 'String s = ru.getTest(); if (s.equals ("Ja") || s.equals ("Nein")) {...} '. Für Groß- und Kleinschreibung verwenden Sie 'e.qualsIgnoreCase (...)' statt 's.equals (...)'. – Majora320

+0

Grundsätzlich ja, benutze 'equals()' wie du es tust. – markspace

+1

Sie könnten 'if (" ja ".equalsIgnoreCase (s) ||" nein ".equalsIgnoreCase (s))' –

Antwort

0

können Sie im Grunde einfach schreiben:

if(ru.getTest().equals("yes") || ru.getTest().equals("no")) 

Ich glaube, kann eine einfache Überprüfung durch die Verwendung Gleichen und nicht unbedingt regex erfolgen. Regex wird tendenziell für komplexere Matching-Szenarien verwendet.

+0

Dank @Luci. Ich möchte eine ausführliche Erläuterung meiner Frage veröffentlichen. " if (ru.getTest(). equals ("ja/oui") || ru.getTest(). equals ("no/non")), Es ist nicht nur Ja, sondern zusammen mit dem französischen Literal. Also, wenn (die obige Bedingung erfüllt ist), sollte es den französischen Literalanteil abschneiden und nur das 'Ja' oder 'Nein' behalten. Ich habe es mit folgendem versucht: if ((ru.getTest()). Equals ("Yes/Oui ") || (ru.getTest()). Equals (" Nein/Nicht ")) { Test = ru.getTest(). Substring (0, Test.indexOf ('/')); Ist es ein richtiger Ansatz? –

0

Sie können so schreiben.

String s = ru.getTest().toLowerCase(); 
if(s.contains("yes") || s.contsins("oui")) { 
    Test = "yes"; 
} else { 
    Test = "no"; 
} 

Wenn es verschiedene Eingabe verwenden s.matchs() -Methode für reguläre Ausdrücke

+0

Könnten Sie überprüfen, ob mein Ansatz mit der detaillierten Erklärung meiner Frage korrekt ist, fragte ich erneut. –

+0

Aktualisiert die Antwort, bitte überprüfen Sie es. Es ist besser geeignet für die Verwendung von String enthält, wenn die Eingabe nicht sicher ist. –

0

Verwenden matches() für regex:

if (ru.getTest().matches("(?i)yes|no")) 

Wenn Sie nur nach dem Teil trimmen wollen und einschließlich ein möglicher Schrägstrich, Sie müssen nicht einmal erst etwas überprüfen:

String trimmed = ru.getTest().replaceAll("/.*", ""); 

Dies funktioniert, unabhängig davon, ob ein Schrägstrich vorhanden ist oder nicht.

+0

Könnten Sie überprüfen, ob mein Ansatz richtig ist mit der detaillierten Erklärung meiner Frage, fragte ich erneut. –

+0

@soom sehen, ob die Bearbeitung meiner Antwort für Sie arbeitet. Ich verstehe immer noch nicht, was genau dein Problem ist. – Bohemian

+0

Ich möchte einfach überprüfen: 1) Wenn die getTest-Methode eine Zeichenfolge mit dem Wert "Ja/Oui" oder "No/Non" 2) Wenn es übereinstimmt, dann trimmen Sie den Teil des Zeichenfolge Wert dh weglassen/und danach, was bedeutet einfach Ja oder Nein, sollte es zurückgeben und diesen Rückgabewert, ich muss in einer lokalen Variablen gespeichert werden deklariert. –