compress metodu

5 views
Skip to first unread message

Murat KOZAN

unread,
Apr 25, 2011, 3:13:15 PM4/25/11
to javacoder_ss11
Arkadaslar 1 haftadir ugrasiyom ancak bu kadar oldu lütfen dogrusunu
yollayin
hasta olacam yoksa


/**
* Liefert eine komprimierte Darstellung der gespeicherten
* Zeichenkette unter Anwendung von Lauflaengenkodierung
* als String zurueck, die gespeicherte Zeichenkette selbst
* wird nicht veraendert. Eine Folge gleicher Zeichen wird
* durch deren Laenge als Zahl gefolgt vom Zeichen selbst
* dargestellt. Beispielsweise wird aus "eeeeaaa" der
* komprimierte String "4e3a". Bei Folgen mit Laenge 1 wird
* die Laengenangabe weggelassen. Beispiel: Das Ergebnis
* der Komprimierung von "eeeedaaa" ist "4ed3a".
*
* @return
* Der komprimierte String
*/
public String compress() {

boolean kontrol =true;
int anzahl=0;
String temp ="";

for( int i =0; i<letters.length(); i++){
temp += letters.charAt(i);
for(int j=0; j<letters.length(); j++){

if(letters.charAt(i)==letters.charAt(j)){

anzahl++;
}
}temp+=anzahl;
anzahl=0;
}

return temp; //REMOVE THIS LINE

}

Burhan Göksu

unread,
Apr 27, 2011, 12:18:32 AM4/27/11
to javacod...@googlegroups.com
okay, yapamadiysan sana benim yaptigim code:

public static String compress(String text){
int count = 0;
String letter = "";
String compressed = "";

for (int i = 0; i < text.length(); i++) {
if(!letter.contains(String.valueOf(text.charAt(i)))){
letter += text.charAt(i);
}
for (int j = 0; j < text.length(); j++) {
if(letter.charAt(i) == text.charAt(j))
count++;
}
if(count == 1) compressed += letter.charAt(i);
else compressed += count + "" + letter.charAt(i);

count = 0;
}
return compressed;
}

Am 25.04.2011 21:13, schrieb Murat KOZAN:
> Arkadaslar 1 haftadir ugrasiyom ancak bu kadar oldu l�tfen dogrusunu

Murat KOZAN

unread,
Apr 27, 2011, 5:21:23 AM4/27/11
to javacoder_ss11
gönderdigin kodu mainde denedim ama hata veriyor, cözemedim, bizahmet
bi göz at

C:\Users\murat\Desktop\eprog\TestBereich>
mmmuuraat
Exception in thread "main" java.lang.StringIndexOutOfBoundsException:
String ind
ex out of range: 1
at java.lang.String.charAt(Unknown Source)
at Route.main(Route.java:20)




import java.util.Scanner;

class Compressor {

public static void main(String [] args){

Scanner sc = new Scanner(System.in);
int count = 0;
String letter = "";
String compressed = "";
String wort = sc.next();

for (int i = 0; i < wort.length(); i++) {
if(!letter.contains(String.valueOf(wort.charAt(i)))){
letter += wort.charAt(i);
}

for (int j = 0; j < wort.length(); j++) {

if(letter.charAt(i) == wort.charAt(j)) <<-------------
burda hata veriyor.
count++;
}
if(count == 1)
compressed += letter.charAt(i);
else compressed += count + "" + letter.charAt(i);

count = 0;

}System.out.println(compressed);

Burhan Göksu

unread,
Apr 27, 2011, 7:03:19 AM4/27/11
to javacod...@googlegroups.com
ok, su an cok g�zel degil, ama simdi calisiyor

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

System.out.println(compress(sc.next()));
}

public static String compress(String text){
int count = 0;

String letter = getSingleLetters(text);
String compressed = "";
for (int i = 0; i < letter.length(); i++) {

for (int j = 0; j < text.length(); j++) {
if(letter.charAt(i) == text.charAt(j))
count++;
}
if(count == 1) compressed += letter.charAt(i);
else compressed += count + "" + letter.charAt(i);
count = 0;
}
return compressed;
}

public static String getSingleLetters(String text){
String letter = "";


for (int i = 0; i < text.length(); i++) {
if(!letter.contains(String.valueOf(text.charAt(i)))){
letter += text.charAt(i);
}
}

return letter;
}

Am 27.04.2011 11:21, schrieb Murat KOZAN:
> g�nderdigin kodu mainde denedim ama hata veriyor, c�zemedim, bizahmet
> bi g�z at

Reply all
Reply to author
Forward
0 new messages