Hi!
Ich habe gestern schon mal was zu dem Thema gepostet:
Für alle, die das Beispiel von gestern nicht kennen!
ich habe eine Klasse Buffer:
...es geht nur um die append-Methode!
also String in char-Array schreiben...wenn zu lang, einfach die überschüssigen ignorieren!
------
JETZT möcht ich die append-Methode überschreiben:
Nämlich wenn der String zu lang ist, soll der Buffer-Inhalt in ein doppelt so großes char-Array umkopiert werden!Ok?
Nur leider funktioniert das nicht!
Danke für eure Hilfe!!
Ich habe gestern schon mal was zu dem Thema gepostet:
Für alle, die das Beispiel von gestern nicht kennen!
ich habe eine Klasse Buffer:
Code:
class Buffer {
public char[] buf;
public int free; //nóch freier Platz
int size;
public int StringPos;
public Buffer(int size) {
buf = new char[size];
this.free = size;
}
public Buffer(){
this.size=10;
buf=new char[size];
this.free=size;
}
public void append(String s) {
int size = buf.length;
int StringPos = 0;
while (free > 0 && StringPos < s.length()) {
buf[size - free] = s.charAt(StringPos);
free--;
StringPos++;
}
}
public String toString() {
return new String(buf, 0, buf.length - free);
}
public static void main(String [] args){
Buffer b1=new Buffer(10);
b1.append("Thomas");
b1.append("Franz");
System.out.println(b1);
}
}
...es geht nur um die append-Methode!
also String in char-Array schreiben...wenn zu lang, einfach die überschüssigen ignorieren!
------
JETZT möcht ich die append-Methode überschreiben:
Nämlich wenn der String zu lang ist, soll der Buffer-Inhalt in ein doppelt so großes char-Array umkopiert werden!Ok?
Nur leider funktioniert das nicht!
Code:
public class Text extends Buffer{
char [] buf2;
int free;
public Text(int size){
super(size);
this.free=size;
}
public void append(String s){
super.append(s);
if(free == 0 && StringPos >= s.length()){ //HIER MUSS DER FEHLER LIEGEN!komm leider nicht drauf!
buf2=new char[size*2];
for(int i=0;i<buf.length;i++){
buf2[i]=buf[i];
}
}
buf2=buf;
}
public static void main(String [] args){
Text t1=new Text(10);
t1.append("Thomas");
t1.append("WernerHans");
System.out.println(t1.toString());
}
}
Danke für eure Hilfe!!