Wie kann ich überprüfen, um zu sehen, ob ein Wort enthält einen Brief oder eine Gruppe von Buchstaben?
Arbeite ich an einem Programm für meine CompSci ich Klasse, und ich bin völlig stecken. Die Zuordnung ist zu verwenden, wenn Aussagen zu prüfen, ob eine bestimmte Zeichenfolge enthält einen Brief oder eine Gruppe von Buchstaben. Ich habe eine Klasse erstellt, und habe ich angelegt und alles, aber ich weiß einfach nicht, wie Sie beginnen Suche nach dem Zeichen. Ich bin wirklich neu auf Saiten-und Return-Methoden. Ich sah für ähnliche Fragen, aber keine hat wirklich geholfen mit dem, was ich suchte. Ich würde schätzen etwas Hilfe.
Mein code bisher:
Main:
import static java.lang.System.*;
public class Lab04e
{
public static void main(String[] args)
{
}
}
StringChecker:
import static java.lang.System.*;
public class StringChecker {
private String check;
public void StringChecker()
{
check = "";
}
public void StringChecker(String s) //constructor
{
check = s;
}
public void setString(String s) //set string
{
check = s;
}
public boolean letterExists(char a)
{
return false;
}
public boolean findSubString(String s)
{
return false;
}
public String toString()
{
return check +"\n\n";
}
}
- Wenn Sie einen Blick auf die Java-Dokumentation für das die String-Klasse, gibt es die Informationen, die Sie benötigen.
- Werfen Sie einen Blick durch die Methoden der die String-Klasse und zu sehen, ob vielleicht passt zu dem, was Sie tun müssen.
- Nicht Sie müssen nur die
contains(String)
Methode für diese? Es ist in den javadocs und alles. - Lustig genug, die Klasse String hat eine Methode, die den gleichen Namen wie das, was Sie zu tun versuchen.
- docs.oracle.com/javase/8/docs/api/java/lang/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich ein grobes Beispiel (kompilieren)
Sie können es anpassen, um eine multi-file-main + Klasse Lage, wie gewünscht. Aber main kann auch in der gleichen Datei wie die definition einer Klasse (aber nur in einer Ihrer Klassen-definition-Dateien, denn es kann nur einen main).
Können Sie es kompilieren, wie:
Können Sie testen Sie es auf der Kommandozeile mit so etwas wie:
Dies ist der Quellcode:
OK, jetzt für die Vorlesung 🙂
Sagte Sie, "Return-Methode". zurück ist eine Aussage, nicht eine Methode. Wichtig zu wissen, den Unterschied.
Auch, in Java, können Sie initialisieren die Variablen, die statisch in der Klasse definition. Sie brauchen nicht zu tun Sie im Konstruktor für Ihren einfachen Fall, könnten Sie schreiben, String check = "" in der definition.
Obigen Beispiel ist roh und schlecht bilden. Ich würde nie schreiben Sie ein real-Welt-Programm auf diese Weise, es ist nur proof-of-concept.
Also ich bin das vermeiden der Verwendung von Fahnen, Variablen, Funktionen und Schleifen Sie so viel wie möglich.
Ich verwendet do... while(). Diese form der Wiederholung ist in der Regel nicht bevorzugt oder benötigt, und macht den code schwerer zu Lesen und zu verwalten ist als eine for-Schleife zeigt den Zustand an der Spitze. Sie können in der Regel (und sollte normalerweise) einen Weg finden, um die Struktur der Schlingen in ein Formular ein, das mit for() eher als do/while. Sie können in der Regel effizient organisieren Schleifen in for () - format durch die Verwendung von boolescher flags oder null prüft.
Diesem Beispiel nicht zu einer willkürlichen Länge sub-string (da sind wir mit einer if-Anweisung, so würde es extrem lange, lange, sub-strings, und äußerst komplexe if-Anweisungen zu behandeln variable Länge sub-strings)
Weiteres Problem, das macht dieses Beispiel schlecht ist, dass es nicht eine Funktion erstellen, um Dinge zu handhaben, die wiederholt den ganzen code (zum Beispiel eine Funktion, die prüft einen Wert und Drucke ein statement).
Können Sie einfach verwenden Sie die contains-Methode der String-Klasse, die bereits implementiert das gewünschte Verhalten. Aber ich nehme an, der Punkt in dieser übung ist zu lernen, WIE es zu tun. So ein grundlegender Ansatz ist die Iteration über alle Zeichen des Strings und vergleichen Sie Sie mit Ihren Ziel-Charakter. Sie können die Länge des Strings mit der Methode length() und die Methode charAt(int) liefert das Zeichen an der angegebenen position. Es könnte also wie folgt Aussehen:
Können Sie so ab, dass zu prüfen Teilstrings.
Wenn Sie nicht verwenden dürfen String.enthält():
Haben Sie, um eine Schleife über jedes Zeichen in der Zeichenfolge.
Sie können String.charAt(int i), um die einzelnen Zeichen an position i.
Prüfen, ob eine Teilfolge, die Sie haben, um eine Schleife über beide Saiten.
Mit der if-Anweisung, die Sie dann einfach überprüfen, ob zwei Zeichen gleich sind. In diesem Fall haben Sie gefunden, ein vorkommen.
Ich glaube was du suchst ist die String-Klasse. Insbesondere sucht man bei der
.contains(CharSequence s)
Methode. Unten ist ein Beispiel, wie Sie können dies tun, für Ihr Szenario (mit if-Anweisungen)Lesen Sie mehr über diese Methode hier.
Einen einfachen Weg, es zu tun wäre, um die
contains
Methode der String-Klasse. Wenn Sie möchten, um es manuell tun, verwenden Sie diesubstring
Methode, um überprüfen jede mögliche unterfolge, die die Länge der Zeichenfolge, die Sie suchen. Verwenden Sie dieequals
Methode für den Vergleich. Werden Sie sicher, dass bei der Iteration über die String-es tut erstrecken sich weiter als der Letzte index.