Aufgabenproblem

Status
Nicht offen für weitere Antworten.

Colts

Mitglied
Hallo zusammen,

ich habe eine Augabenstellung an der ich langsam aber sicher verzweifle :bahnhof:

Aufgabe:
Schreiben Sie ein Programm, das zwei Worte einliest. Das Programm gibt dann beide Worte auf einer Zeile aus. Dabei werden die Worte durch Punkte getrennt. Die Gesamtlänge der ausgegebenen Zeichen soll 30 betragen:
Geben Sie das erste Wort ein:
turtle
Geben Sie das zweite Wort ein:
153

turtle.....................153
Das könnte für ein Inhaltsverzeichnis verwendet werden.

Hinweis: Verwenden Sie System.out.print(".") innerhalb einer Schleife, um die Punkte auszugeben.

Mein Hauptproblem ist die Trennung der zwei Wörter durch Punkte. Wie stelle ich das am besten an?
 

hdi

Top Contributor
Die Trennung der Wörter ist ja schon gegeben, indem du zwei separate Strings einliest.
Das speicherst du ja wohl in 2 Variablen, oder?

jetzt kannst du an den ersten String Punkte anhängen, und anschliessend den zweiten.

Anhängen kannst du mit:

String#concat(String)

Aber eine viel effizientere Lösung ist einen StringBuilder zu verwenden
(siehe API), und dann mittels der Methode

StringBuilder#append(String)

zu arbeiten.
 

Colts

Mitglied
Hier mein Quellcode:
Code:
import java.io.*;
class WortPunkt
{
    public static void main (String[] args ) throws IOException
    {
        BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in));
        String inputData1, inputData2;
        int Anzahl1, Anzahl2;    // Anzahl Zeichen aus String Eingabe
        int Anfang = 0;
        int Differenz;            //Differenz zwischen 30-(Anzahl1 + Anzahl2)
        String Punkt = ".";
        
        System.out.println( "Geben Sie das erste Wort ein:" );
        inputData1 = stdin.readLine();
        Anzahl1 = inputData1.length();    
        
        System.out.println( "Geben Sie das zweite Wort ein:" );
        inputData2 = stdin.readLine();
        Anzahl2 = inputData2.length();
        
        Differenz = (30-(Anzahl1 + Anzahl2));
        
        System.out.println("Differnz " + Differenz);
        
        [COLOR=Red]while (Anfang < Differenz)
        {
        System.out.println(inputData1 + ___________ + inputData2);
        Anfang = Anfang + 1;
        }
        System.out.println("OK!");[/COLOR]
    }
}

Eine weitere Vorgabe ist, dass Problem über eine While-Schleife zu lösen.
 

mvitz

Top Contributor
Da die "." zwischen die beiden Eingaben sollen und das mit System.out.print(".") verwirklicht werden sollen, solltest du:
1) erste Eingabe 1 ausgeben
2) die "." in einer while-Schleife, so oft, wie die Differenz ist ausgeben
3) anschließend Eingabe 2 ausgeben.
 

Schandro

Top Contributor
Mach einfach inner Schleife so viele Punkte, wie
30-(wort1.length()+wort2.length())
ergeben...
 

hdi

Top Contributor
Ist doch fast richtig

[HIGHLIGHT="Java"]System.out.print(Eingabe1);
for(...)
{ System.out.print("."); }
System.out.println(Eingabe2);[/HIGHLIGHT]

println verwendest du nur am Ende, das print() macht keinen Zeilenumbruch.
Mit der while-Schleife geht es genauso. Solltest du doch hinkriegen oder.

Und nimm den Tipp meines vorredner an: Variablen schreibt man klein!
 

Colts

Mitglied
Heute konnte ich es lösen :)
Gestern ging einfach gar nichts mehr. Vielen Dank für eure Hilfe und den Tipp wie man eine Variabel korrekt schreibt.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben