String überprüfen
Sensei
- java
0 Tobias0 Dmitri Rettig0 Dmitri Rettig0 Tobias
Hey!
Kann mir jemand sagen, wie ich einen String überprüfen kann, ob er nur aus 0 und 1 besteht?
Bitte gleich den ganzen code, wenn ihn jemand weiß!
z.B. ich lese string ein myString = readWord();
und dann will ich überprüfen, ob in myString nur 0 und 1 drin sind.
Thx, greez aus Wien,
Sensei
Hallo!
Kann mir jemand sagen, wie ich einen String überprüfen kann, ob er nur aus 0 und 1 besteht?
Was hast du an der for-Schleife nicht verstanden?
Was hast du an der Methode String.length() nicht verstanden?
Was hast du an der Methode String.chatAt() nicht verstanden?
Was hast du am Gleichheitsoperator (==) nicht verstanden?
Sorry, aber diese Aufgabe ist so leicht (3 triviale Zeilen), daß mich doch
sehr der Verdacht beschleicht, daß du dir nicht mal den Ansatz eines
Gedankens gemacht hast.
(Ja, auch für einen Programmieranfänger ist die Aufgabe leicht.)
Solltest du dir zwischenzeitlich Gedanken gemacht haben, aber trotzdem nicht
weiterkommen, dann zeige bitte deinen erarbeiteten Lösungsansatz auf, so daß
wir dich bei der weiteren Lösungsfindung unterstützen können.
Gruß
Tobias
Hey!
Kann mir jemand sagen, wie ich einen String überprüfen kann, ob er nur aus 0 und 1 besteht?
Bitte gleich den ganzen code, wenn ihn jemand weiß!
Das krieghst du in den Seltensten fällen!
private static boolean isOneOfTheseChars(char certainCharacter, char[] charArray)
{
for (int i = 0; i < charArray.length; i++)
if (certainCharacter == charArray[i]) return true;
return false;
}
Als erstes diese Methode, die überprüft, ob ein Zeichen ein Teil eines Arrays ist.
priavate static boolean consistsOfTheseChars(String anyString, char[] charsToDelete)
{
for (int i = 0; i < anyString.length(); i++)
if (!isOneOfTheseChars(anyString.charAt(i), charsToDelete)) return false;
return true;
}
und nun kannst du überprüfen:
boolean error = false;
myString = readWord();
char[] chars = {'1', '2', '3', '4', '5', '6', '7', '8', '9'};
error = consistsOfTheseChars(myString, chars);
Aber merke: Hier bekommst du meistens erklärt, wie du vorzugehen hast. Entweder der Code ist zu kompliziert, um das so auf die Schnelle zu machen, oder - wie in diesem Fall - so einfach, dass es jeder Java-Anfänger machen kann.
MfG Dmitri
Hi,
habe deine Frage falsch gelesen. Meine Lösung ist natürlich nur dann sinnvoll, wenn der String aus vielen Zeichen bestehen soll. Wenn es nur zwei sind, dann kannst du entweder char[] = {'0', '1'} nehmen, oder in der if-Anfweisung
if (myString.charAt(i) != 0 || myString.charAt(i) != 1) return true;
MfG Dmitri
Hallo!
Kann mir jemand sagen, wie ich einen String überprüfen kann, ob er nur aus 0 und 1 besteht?
Bitte gleich den ganzen code, wenn ihn jemand weiß!
Das krieghst du in den Seltensten fällen!
Toll! Und wieso gibst du ihm dann eine fertige Lösung?
Hier steht "Energie des Verstehens" drüber. Nicht "Energie des Delegierens".
Gruß
Tobias
Hi,
Toll! Und wieso gibst du ihm dann eine fertige Lösung?
Hier steht "Energie des Verstehens" drüber. Nicht "Energie des Delegierens".
Schon klar, aber er hat mir so leid getan ...
Er ist ein Anfänger. Vielleicht kennt er charAt() nicht? Vielleicht weiss er nicht so richtig mit Strings umzugehen? Ich bin mir sicher, er hat sich Gedanken gemacht. Nur wenn man das oben erwähnte nicht kann, ist es schwierig. Jetzt hat er eine fertige Lösung. Diese schaut er sich ganz genau an und lernt daraus.
Du hast sicherlich auch mal deine Probleme, beispielsweise mit der return-Anweisung gehabt.
MfG Dmitri
Hallo Dmitri!
1.: Danke für deine Hinweise zu den beiden JAVA-Themen, die ich in diesem Forum angesprochen habe - du hast mir sehr geholfen! Danke auch, dass du mich gegenüber Tobias verteidigt hast.
Am Anfang ist es nie leicht, etwas zu verstehen, und sich nach stundenlanger(!) Arbeit (das Problem war noch ein bisschen weitläufiger, weil das alles in ein Array verpackt werden sollte) sich auch noch Beschimpfungen anhören zu müssen, war wirklich sehr unschön.
2.: Frage:
Mit dem Befehl != 0 geht's nicht - ich muss != 48 schreiben (also ASCII Code o.ä.). Aber warum ist das so?
Hier der Code (wie gesagt, es funktioniert, 0 bzw. 1 wird angesprochen, aber warum mit 48 bzw. 49???)?
for(i = 0; i < wort1.length (); i++)
{
if((int)wortArray[j][i] != 48 && (int)wortArray[j][i] != 49)
{
spezError = true;
break;
}
}
Bitte noch einmal um Erklärung,
thx vielmals & Grüße aus Wien, Tobias
Hallo,
2.: Frage:
Mit dem Befehl != 0 geht's nicht - ich muss != 48 schreiben (also ASCII Code o.ä.). Aber warum ist das so?
Ja, 48 ist der ASCII- bzw. Uni-Code für '0'. 49 für '1'.
Du mußt die 0 und die 1 in einfache Anführungszeichen setzen, so wie ich das
gerade oben gemacht habe. Damit weiß Java, daß du nicht den Wert 0 bzw. 1
meinst, sondern das Zeichen '0' bzw. '1', also eben das 48. bzw. 49. Zeichen
im Unicode.
Du solltest dir vielleicht wirklich erstmal die Grundlagen der Sprache
Java aneignen. Sehr zu empfehlen sind z.B. die ersten paar Seiten von
Guido Krügers Java-Buch (zum kostenlosen Download unter http://www.java-buch.de).
Grüße
auch Tobias
Hallo,
2.: Frage:
Mit dem Befehl != 0 geht's nicht - ich muss != 48 schreiben (also ASCII Code o.ä.). Aber warum ist das so?
Ja, 48 ist der ASCII- bzw. Uni-Code für '0'. 49 für '1'.
Du mußt die 0 und die 1 in einfache Anführungszeichen setzen, so wie ich das
gerade oben gemacht habe. Damit weiß Java, daß du nicht den Wert 0 bzw. 1
meinst, sondern das Zeichen '0' bzw. '1', also eben das 48. bzw. 49. Zeichen
im Unicode.
Thx, vielmals!
Du solltest dir vielleicht wirklich erstmal die Grundlagen der Sprache
Java aneignen. Sehr zu empfehlen sind z.B. die ersten paar Seiten von
Guido Krügers Java-Buch (zum kostenlosen Download unter http://www.java-buch.de).
Würd ich gerne & ich bin acuh schon fleißig dabei (allerdings mit Horton: Beginning Java 2). Das Problem ist nur, dass ich für eine Übung auf der Uni dieses Programm schreiben muss, nur 11 Tage dafür Zeit habe und auch sonst noch einiges andere um die Ohren.
Ich bin aber immer bestrebt besser zu werden ;-)...
Grüße
auch Tobias
Danke für deinen Hinweis, (auch) Tobias ;-)