Programmieraufgabe

Status
Nicht offen für weitere Antworten.
F

feux

Gast
Als ich heute diese Aufgaben ssah dachte ich nur :autsch:


Schreiben Sie ein Programm, das eine Zeichenreihe dergestalt aufbläst, dass das n-te Zeichen n mal eingefuegt wird.
Beispiel:
"bang!" wird zu "baannngggg!!!!!", oder allgemein
z1z2z3... wird zu z1z2z2z3z3z3... .

Schreiben Sie ein Programm, das eine Zeichenreihe dadurch komprimiert, dass (maximale) Teilfolgen von gleichen Zeichen durch einmalige Angabe des Zeichens und seiner Vielfachheit ersetzt werden.
Beispiel:
"100001111111000111111111111" wird "1(1)0(4)1(7)0(3)1(12)"


Wer kann mir bei den beiden Angaben helfen.. Am besten wäre die Lösung...

DANKE!!
 
G

Guest

Gast
Hallo,

denke mal das dir hier einige helfen könne, aber dies ist nicht der Ort wo Hausaufgaben für dich gemacht werden. Vll. hast du nen Ansatz oder kannst etwas genauer beschreiben wo dein Problem ist
 

DocRandom

Top Contributor
Hi!

..ä´hm gehe ich recht in der Annahme, das Ihr soeeben Schleifen und der Gleichen durchmacht?

Nunja das Problem ist relativ Trivial ;)

zu:
Schreiben Sie ein Programm, das eine Zeichenreihe dergestalt aufbläst, dass das n-te Zeichen n mal eingefuegt wird.
..nun ein String ist ja nix anderes als ein Array aus einzelnen Zeichen, ergo ergibt sich auch schon folgendes Muster:
  • durchlaufe den String von Anfang bis zum Ende
  • nimm Deine Schleifen/Zählvariable als Indikator für die Duplizierung des aktuellen Zeichens
  • schreibe den/die Zeichen (aktuelles Zeichen sooft wie Zählvariable) in einen temporären String
  • gib das ganze aus! ;)
zu:
Schreiben Sie ein Programm, das eine Zeichenreihe dadurch komprimiert, dass (maximale) Teilfolgen von gleichen Zeichen durch einmalige Angabe des Zeichens und seiner Vielfachheit ersetzt werden.
..nunja, wenn Du die erste Aufgabe gemeistert hast, dann ist die 2. wohl von selbst lösbar oder?

Lösung gibts von mir vorerst keine, denn nur durchs selber machen lernt man auch was dabei! ;)

*** Mehrere Threads wurden aufgrund eines Doppelpostings an dieser Stelle zusammengeführt. ***

..so ich erbarme mich Deiner und poste Dir mal das erste Beispiel!
Allerdings habe ich dieses nur aus dem Stegreif geschrieben, bitte also selber austesten!
Code:
public class StringExtender {
	private String eingabe;
	
	public StringExtender() {
		eingabe = new String();
	}
	public String extendString(String line){
		// unser Buffer zum Speichern der Zeichen
		StringBuffer buffer = new StringBuffer();
		// länge des übergebenen Strings
		int lenght = line.length();
		// eingabe zwischenspeichern, für was auch immer ;)
		eingabe = new String(line);
		/* Zeichenweises auslesen des Strings
		   Da das erste Zeichen sowieso nur 1 mal erscheinen soll,
		   wird das erste Zeichen gleich in den Buffer geschoben und 
		   unsere Schleife mit 1 initialisiert.
		*/ 
		buffer.append(line.charAt(0));
		for(int i = 1; i < lenght; i++){
			// hole Zeichen aus dem String
			char ch = line.charAt(i);
			// hier ist unser Mulitplikator
			// die Schleife läuft genau bis zur Stellenzahl des Zeichens
			for (int x = 0; x <= i; x++ ){
				buffer.append(ch);
			}
		}
		return buffer.toString();
	}
	public String getEingabe(){
		return eingabe;
	}
}

mfg
DocRandom

Dieser Beitrag wurde von L-ectron-X am 09.11.2006 um 7:03 Uhr editiert.
Die Beiträge von DocRandom in einem anderen Thread auf den Doppelpost vom TO wurden zusammengführt.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben