Frage zu String Beispiel (Java)
Geizhals » Forum » Programmierung » Frage zu String Beispiel (Java) (8 Beiträge, 50 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
Frage zu String Beispiel (Java)
06.03.2003, 07:39:48
Könnt ihr mir vielleicht folgendes Beispiel näher erklären.

folgende Datei in folgendem Verzeichnis soll von ".java" auf ."class" geändert werden.

Lecture\JavaProgs\Prog5.java


  static String class Name (String path) {  // was bedeutet (String path), ist das
                                                             nur der name?
    StringBuffer b = new StringBuffer(path);
    if (path.endsWith(".java"){   // ok das ist klar, wenn es mit ".java" endet...
      int len = path.length();   // was bedeutet das? wofür steht len?
      b.replace(len-5, len, ".class"); // b.replace ist klar aber (len-5, len...)???
    }
    int i = path.lastIndexOf('\');  // was passiert hier? was wird mit('\') bewirkt?
    if (i >= 0) b.delete (0, i+1); // wird hier im StringBuffer von Index 0 bis Index
                                         // i+1 gelöscht? warum genau? wird nicht schon
                                        // oben .java durch. class ersetzt? was muss man da
                                       // noch genau löschen?
    return b.toString();  // hier wird aus dem StringBuffer ein String gemacht od?
  }
      

        

      The Brain      


Antworten PM Übersicht Chronologisch
 
Melden nicht möglich
.
Re: Frage zu String Beispiel (Java)
06.03.2003, 10:07:36
Als Parameter wird also folgender String übergeben:
    "Lecture\JavaProgs\Prog5.java"


  static String class Name (String path) {  // was bedeutet (String path), ist das
                                                             nur der name?
// Obige Zeile ist ne Klassendefinition und das in Klammer ist der Parameter;
// String bedeutet hier, dass die Variable path vom Typ String ist; Wäre es ne
// Zahl, dann würde es zB "int VariablefuerZahl"  lauten

    StringBuffer b = new StringBuffer(path);
    if (path.endsWith(".java"){   // ok das ist klar, wenn es mit ".java" endet...
    int len = path.length();   // was bedeutet das? wofür steht len?

// Was links von einer Zuweisung steht muss ne Variable sein. Und da diese
// noch nirgends definiert ist, musst du vorher sagen, von welchem Typ
// sie ist.


    b.replace(len-5, len, ".class"); // b.replace ist klar aber (len-5, len...)???
//  In der Variablen len ist die Länge des als Parameter übergebenen
//  Strings drinnen. In unserem Fall ist das 28. Also ersetzt du von die
//  Stellen von 23 bis 28 (das ist dort wo ".java" steht) mit dem Text ".class"

    }
    int i = path.lastIndexOf('\');  // was passiert hier? was wird mit('\') bewirkt?
// Nachdem das ganze unter Hochkomma steht, wird hier nach dem letzten \
// im übergebenen Parameter gesucht. In obigen Beispiel ist es folgendes
// "Lecture\JavaProgs   ---->\<----- Prog5.java". Das heißt in der Variablen i
// steht danach vermutlich 18.


    if (i >= 0) b.delete (0, i+1); // wird hier im StringBuffer von Index 0 bis Index
                                         // i+1 gelöscht? warum genau? wird nicht schon
                                        // oben .java durch. class ersetzt? was muss man da
                                       // noch genau löschen?

// Du hast wohl .java durch .class erstetzt, aber davor steht noch der ganze
// Pfad zur Datei. Hier wird aber nur der Dateiname zurückgegeben. Sprich
// die Rückgabe lautet "Prog5.class" - keine Pfadangabe mehr davor!

    return b.toString();  // hier wird aus dem StringBuffer ein String gemacht od?
  }
    

Alles klar?
TomSat

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
.
Re: Frage zu String Beispiel (Java)
06.03.2003, 10:08:34
hi,

"Lecture\JavaProgs\Prog5.java" ist jener string, der geändert werden soll, dh. beim aufruf "mitgegeben" werden soll...

beim aufruf wird nun "Lecture\JavaProgs\Prog5.java" in die variable "path" vom typ string geschrieben...

weiters wird ein stringbuffer "b" erzeugt und "path" (="Lecture\JavaProgs\Prog5.java") zugewiesen...

wenn die endung ".java" ist:
bestimmung der länge von "b" (=28 zeichen) und ablegen als integer namens len...
! die länge des stringbuffers ist 28, indizieren der einzelnen zeichen jedoch mit =0, 1, 2, ..., 26, 27 !

".java" steht nun im bereich 23, 24, 25, 26, 27

ersetzt wird nun der bereich len-5, len, somit 23, 24, 25, 26, 27, 28

-> an den stellen, wo ".java" steht, wird ".clas" geschrieben und zusätzlich an die stelle 28 noch "s" geschrieben, der stringbuffer somit um ein zeichen verlängert...

-> b="Lecture\JavaProgs\Prog5.class"

lastindexof() liefert den index des letzten auftretens von "\", wäre hier "17"...

delete() löscht nun die zeichen von 0 scheinbar bis excl. 17+1...

dann wird wieder ein string daraus gemacht,
returnwert sollte "Prog5.class" sein :-)

lg,
hariw
_________________________________________________________________________
AT:
A: Schaust oba gschissn aus mit de neich}n Brü}n...
B: I hob doch goa kane neich}n Brü}n...
A: Oba I...

DE:
A: Mann, schaust du belämmert aus mit den neuen Augengläser...
B: Ick hab doch gar keene neuen Augengläser...
A: Aber icke...
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung