ich hab anscheinend ein oder mehrere kleine fehler drin.
ich möchte mit der methode "concat" eben ein char zum char array hinzufügen.
ich bekomme mit diesem code im moment folgene ausgabe:
Code:
..
Die Zeichenkette ist schon voll.
ab
kann mir jemand helfen. woher kommt dieses ".." ???
habe folgendes interface:
Code:
public interface Zeichenkette
{
public void concat(char c);
// public int length(char[] ch);
// public boolean contains(char[] ch);
// public char read(char[] ch, int position);
// public void exchange(char c);
// public void invert(char[] ch);
// public void append(char[] firstCh, char[] secondCh);
}
hier die implentierung:
Code:
public class ZeichenketteImpl implements Zeichenkette
{
private char[] myCharArray;
private int length;
int position = 0;
public ZeichenketteImpl()
{
myCharArray = new char[0];
}
public ZeichenketteImpl(int length)
{
this.length = length;
myCharArray = new char[length];
}
public void concat(char c)
{
if (position < length)
{
//int i = myCharArray.length;
myCharArray[position] = c;
position++;
}
else
{
System.out.println("Die Zeichenkette ist schon voll.");
}
}
public char[] getMyCharArray()
{
if (myCharArray.length != 0)
{
return myCharArray;
}
else
{
String empty = "Die Zeichenkette enthält im moment keine Zeichen.";
return empty.toCharArray();
}
}
}
Code:
public class ZeichenketteApp
{
public static void main(String[] args)
{
ZeichenketteImpl z1 = new ZeichenketteImpl(2);
System.out.println(z1.getMyCharArray());
//test concat
z1.concat('a');
z1.concat('b');
z1.concat('c');
System.out.println(z1.getMyCharArray());
}
}
naja das is doch klar du machst eine zeichenkette mit der größe von 2 und tust 2 elemente rein und beim dritte acht er die ausgabe das sie voll ist und danach gibst du aus...
hm der aufbau ist nicht schlecht, hm bin allerdings selbst kein profi , allerdings solltest du in einer klasse die daten hat keine ausgabe haben sondern im fehlerfall eher ein rückgabewert oder besser eine exception...
aja einfacher ist:
Code:
return new String("Die Zeichenkette enthält im moment keine Zeichen.").toCharArray();
und die punkte kommen daher das du deiner zeichenkette schon eine länge zugewiesen hast aber noch nichts reingeschrieben hast, und du gibst aus also gibt er aus was defaultmäßig drinsteht....