Schreiben Sie ein Programm, das ermöglicht dem Benutzer, eine Zeichenfolge eingeben und dann druckt die Buchstaben der Zeichenfolge, die durch Komma getrennt
Die Ausgabe ist immer ein String, zum Beispiel H,E,L,L,O,
. Wie konnte ich die Grenze der Kommas? Will ich die Kommas nur zwischen den Buchstaben, zum Beispiel H,E,L,L,O
.
import java.util.Scanner;
import java.lang.String;
public class forLoop
{
public static void main(String[] args)
{
Scanner Scan = new Scanner(System.in);
System.out.print("Enter a string: ");
String Str1 = Scan.next();
String newString="";
String Str2 ="";
for (int i=0; i < Str1.length(); i++)
{
newString = Str1.charAt(i) + ",";
Str2 = Str2 + newString;
}
System.out.print(Str2);
}
}
- Was genau werden Sie wollen, dies zu tun?
- wieder Einmal, versuchen Sie, halten Sie den Sun-Java-Namenskonventionen so viel wie möglich, wenn Sie nicht wollen, zu verlieren Punkte. Variable Bezeichner sollten beginnen mit Kleinbuchstaben.
Scan
undStr2
sind ungültig. Auch Klassennamen sollten beginnen mit Großbuchstaben.forLoop
ist ungültig. - Mit den standard-Namenskonventionen ist eine gute übung, klar, aber man kann nicht unbedingt sagen, das Plakat ist zu verlieren Punkte auf die Aufgabe nicht Ihnen zu Folgen. Überlassen Sie den Schüler und den Vorgaben des Auftrags. (Und ich nenne es unkonventionell und entmutigt, aber nicht ungültig)
- möglich, Duplikat der stackoverflow.com/questions/2753313/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einfachste Weg, den ich sehe, ist :
Die Ausgabe, die es geben wird :
Aber ich empfehle learning regulären Ausdruck wie vorgeschlagen von @Roman. Bis dann wird dies den trick tun. 🙂
Da dies Hausaufgaben, ich helfe Euch ein wenig, ohne dass die Antwort:
Wenn Sie möchten, dass der Ausgang nur zwischen Buchstaben IE: A,B,C statt A,B,C, das ist, was ich mir vorstellen Sie zu Fragen. Dann müssen Sie sich bei Ihren for-Schleife und überprüfen Sie die Randbedingungen.
Versuchen, die reguläre Ausdrücke:
Mit Leerzeichen, es wäre ein bisschen einfacher, da Sie nicht brauchen, um aufzugeben, die Letzte "ungerade" Komma:
Wenn Sie herausgefunden haben, die loop-Lösung, können Sie Folgendes versuchen 😉
replaceAll
, könnte genauso gut tun, ohne dieArrays.toString/toCharArray
: stackoverflow.com/questions/2753313/...Einfach nicht Anhängen Komma, wenn der letzten Element der Schleife angehängt werden. Sie haben das Element index
i
und die Länge der Zeichenfolge durchStr2.length()
. Gerade die Grundschule, die Mathematik mit einem weniger-als-oder größer-als-operator in einemif
- Anweisung.Dem folgenden snippet sollte lehrreich sein. Es zeigt sich:
StringBuilder
für Gebäude stringschar
imString
eine explizite index