Willkommen zurück zum Kurs von KnowledgeCity zum Programmieren in Java. Ich bin Cliff Brozo, Ich bin dein Lehrer. Heute lernen wir alles über Saiten, und wie man Daten in unser Programm bekommt. Werfen wir einen Blick auf einen Code. Wenn Java mit Strings umgeht, ein String wird als Klasse betrachtet und jeder String ist ein Objekt in dieser Klasse. Jetzt sagen Sie vielleicht was? Nun, das Problem ist, dass Strings gespeichert werden als Referenzvariable. Und das bedeutet, anstatt zu enthalten das eigentliche Wort in der Zeichenfolge, es enthält einen Zeiger auf eine Speicheradresse. Und ein zweiter String würde einen anderen Zeiger enthalten an eine andere Speicheradresse. Nun, normalerweise in der Programmierung, wir würden gleich gleich verwenden, um Dinge zu vergleichen. Aber in diesem Fall, gleich gleich würde die Speicheradressen vergleichen die offensichtlich anders sind und es würde die Datenwerte nicht vergleichen. Schauen wir uns an, wie das aussieht. Wenn wir in Zeile fünf ein kurzes Programm schreiben, Ich habe eine Variable namens myName eingerichtet, und ich gebe ihm den Wert meines Namens. Dann habe ich eine weitere Zeichenfolge namens myName2 eingerichtet, Ich habe einige Informationen eingelesen. Ich richte meinen Scanner ein und drucke dann eine Zeile aus das sagt dem Benutzer, was zu tun ist. In Zeile neun sage ich, "Wie heißt du?" Und die Person an der Konsole, gibt ihren Namen ein, der in myName2 gespeichert ist. Dann stelle ich die Frage, wenn myName gleich myName2 ist dann print out myName ist gleich myName2, andernfalls ist myName nicht gleich myName2. Und ich werde Sie noch einmal darauf aufmerksam machen dass wir hier gleich gleich verwenden, das ist ein Weg, um auf Gleichheit zu testen in den meisten Programmiersprachen. Wenn das Programm unten läuft, die Aufforderung erscheint auf dem Bildschirm, "Wie heißt du?" Das ist ab Zeile neun. Dann tippe ich in Zeile 10 Cliff ein, Das ist mein Name. Und Zeile 11 sagt die Klippe, die ich gespeichert habe in Zeile fünf gleich der, die ich eingegeben habe in Zeile 10. Obwohl sie genau gleich sind, das Programm sagt mir, dass Cliff nicht gleich Cliff ist. Und das liegt daran, dass diese Variablen verglichen werden befinden sich im Gedächtnis, nicht die tatsächlichen Daten. Ein Weg, das zu umgehen, ist, hineinzugehen und ändern Sie, wie Java die Gleichen vergleicht, tatsächlich eine Funktion namens gleich verwenden. Jetzt ist dies das gleiche Programm, das Sie sich ansehen außer in Zeile 11, Ich habe die Funktionsweise des Codes geändert. Anstatt gleich gleich zu verwenden, Ich habe myName.equals eingegeben und dann in Klammern myName2. Indem man equals verwendet, anstatt die Speicherorte zu überprüfen die offensichtlich nicht gleich sind, es prüft die tatsächlich enthaltenen Werte an diesen Speicherorten. Wenn das Programm also wieder läuft, Ich tippe myName ein und diesmal heißt es Cliff ist unglaublich ähnlich zu Klippe. Ich werde jedoch Ihre Aufmerksamkeit lenken auf der rechten Seite des Bildschirms. Ich habe das Programm noch einmal ausgeführt, und diesmal tippte ich meinen Namen in Großbuchstaben ein. Nun, dieses Mal hat das Programm Cliff genau angegeben ist nicht gleich Cliff, weil man nicht in Großbuchstaben ist, und der andere ist und die tatsächlichen Einsen und Nullen für diese Buchstaben unterscheiden sich von denen für die Großbuchstaben. Schauen wir uns an, was passiert wenn wir einzelne Charaktere vergleichen. Wir haben die Möglichkeit anzurufen auf mehrere verschiedene Funktionen auszuwerten was in einem individuellen Charakter steckt. Ich kann testen, ist es ein brief? Ist es eine Ziffer? Ist es Weißraum? Ist es Großbuchstaben? Ist es Kleinbuchstaben? Ich kann es tatsächlich in Großbuchstaben umwandeln, Ich kann es in Kleinbuchstaben umwandeln oder ich kann sogar den einzelnen Buchstaben umwandeln zu einer Zeichenfolge, in der es gespeichert werden würde als eine einstellige Zeichenfolge. Schauen wir uns an, wie das läuft. Ich habe ein Programm geschrieben, das in Zeile fünf beginnt und ich nehme eine Charaktervariable und ich nenne es Buchstabe C und weise ihm den Wert 'C' zu. Und du wirst dich erinnern dass einzelne Zeichen einfache Anführungszeichen erhalten. Zeile sechs gibt die erste Zeile aus das besagt, dass das Zeichen leer ist. Und das ist die erste Zeile der Ausgabe hier, der Charakter ist C. Dann in Zeile acht, Ich teste, ob das Zeichen Großbuchstaben ist, .isUpperCase ist eine Funktion und ich verwende letterC, es kennt den unterschied zwischen Groß- und Kleinbuchstaben. In diesem Fall, das 'C', das ich in Zeile fünf zugewiesen habe, ist ein Großbuchstabe. Also wird Zeile neun ausgeführt, und genau das sage ich in meiner Ausgabe, das Zeichen C ist ein Großbuchstabe. Im nächsten Teil des Programms heißt es: Buchstabe C ist jetzt gleich, Nun, was ich tue, ist, den Wert zu ändern des variablen BuchstabenC in Kleinbuchstaben. Ich rufe die Kleinbuchstabenfunktion auf, um klein zu schreiben und das nimmt alles, was in Buchstabe C steht, ändert es in Kleinbuchstaben und legt es direkt wieder in Buchstabe C ab. Nur zur Überprüfung in Zeile 15, Ich drucke eine Zeile aus, die das Zeichen C . sagt wurde in Kleinbuchstaben geändert. Und das ist die dritte Zeile hier das Zeichen C wurde in Kleinbuchstaben geändert. Dann führe ich meinen Test in den Zeilen 17 bis 20 erneut durch um zu sehen, ob das Zeichen Großbuchstaben ist. Dieser Code ist genau der gleiche wie in den Zeilen 8 bis 11. Aber dieses Mal sagt es mir, dass das Zeichen C klein geschrieben ist. Dann frage ich in Zeile 22, ist das zeichen ein buchstabe? Und ich übergebe die .isLetter-Funktion, der Buchstabe C. In diesem Fall, der Buchstabe C ist ein Buchstabe und wird ausgedruckt dass es ein Buchstabe des Alphabets ist. In Zeile 27, Ich weise diesem Buchstaben das Zeichen '5' zu. Das ist keine Zahl '5', Es wird immer noch als Charakter behandelt wie es in einfachen Anführungszeichen steht. Ich drucke eine Zeile nur zur Bestätigung aus. Der Charakter wurde auf eine 5 geändert. Und dann frage ich, ist das Zeichen eine Ziffer? .isDigit bedeutet nicht, dass es numerisch ist, sie sind anders. Es kennt nur den Unterschied zwischen Buchstaben des Alphabets und Zahlen des Alphabets. In diesem Fall, das Zeichen 5 ist eine Ziffer und das ist die Zeile, die hier gedruckt wird. Ich ändere den Buchstaben C in ein Leerzeichen und ich drucke eine Zeile mit der Angabe aus dass das Zeichen in ein Leerzeichen geändert wurde. Das ist die vorletzte Zeile hier in der Ausgabe. Ich teste in Zeile 39, um zu sehen, ob das Zeichen ein Leerraum ist. Ich übergebe der .isWhitespace-Funktion den Buchstaben C und ja, tatsächlich wird das Zeichen als Leerraum ausgegeben. Jetzt wissen Sie, wie Strings gespeichert werden. Sie werden als Speicherorte gespeichert, und ich muss eher das Wort Punkt gleich verwenden als gleich gleich. Wir haben gesehen, wie wir Zeichen in unser Programm eingeben können und testen Sie dann, um welche Art von Zeichen es sich handelt. Wir können sie in Großbuchstaben umwandeln, wir können sie in Kleinbuchstaben umwandeln, und wir können sie in Saiten verwandeln. Begleite mich das nächste Mal, wenn wir uns mit String-Charakteren befassen, Indizes von Strings und einige String-Operationen. Ich werde Sie bald sehen.