Hallo liebe Leute,
ich muss eine Klasse schreiben, welche ein Genom mit den Buchstaben A, C, G, und T repräsentiert. Zuerst muss man durch public Genom(int length) per Zufall eine Sequenz bestehend aus diesen Buchstaben kreieren. Danach wird diese Sequenz(gespeichert in char [] aminoAcids) in der Methode "deletion" bearbeitet. Hier wird per Zufall ein Element des Arrays ausgesucht und gelöscht. Das Problem aber ist, dass wir vor der Bearbeitung und nach der Bearbeitung zwei unterschiedliche Genomsequenzen haben müssen. Aus irgend einem Grund, passiert genau das nicht bei mir. Wenn ich zum Beispiel "ACTTGC" als Genom habe, dann müsste als Outcome ein Genom dastehen, welches ein Buchstabe weniger hat, als das erste Genom. Unglücklicherweise darf ich keine weiteren Methoden benutzen (z. bsp eine setter-Methode), weil ich nur die angegebenen Methoden benutzen darf. Weiss jemand, wo genau das Problem liegt und wie ich es lösen kann, sodass mein Objekt die neue Sequenz in sich speichert?
mein Quellcode:
ich muss eine Klasse schreiben, welche ein Genom mit den Buchstaben A, C, G, und T repräsentiert. Zuerst muss man durch public Genom(int length) per Zufall eine Sequenz bestehend aus diesen Buchstaben kreieren. Danach wird diese Sequenz(gespeichert in char [] aminoAcids) in der Methode "deletion" bearbeitet. Hier wird per Zufall ein Element des Arrays ausgesucht und gelöscht. Das Problem aber ist, dass wir vor der Bearbeitung und nach der Bearbeitung zwei unterschiedliche Genomsequenzen haben müssen. Aus irgend einem Grund, passiert genau das nicht bei mir. Wenn ich zum Beispiel "ACTTGC" als Genom habe, dann müsste als Outcome ein Genom dastehen, welches ein Buchstabe weniger hat, als das erste Genom. Unglücklicherweise darf ich keine weiteren Methoden benutzen (z. bsp eine setter-Methode), weil ich nur die angegebenen Methoden benutzen darf. Weiss jemand, wo genau das Problem liegt und wie ich es lösen kann, sodass mein Objekt die neue Sequenz in sich speichert?
mein Quellcode:
Java:
import java.util.Arrays;
public class Genom {
//Laenge des Genoms
private int length = 0;
//Sequenz der Aminosäure
private char[] aminoAcids;
//Wortschatz
static final char[] ALPHABET = {'A', 'C', 'G', 'T'};
/**
* Konstruktion des Genoms per Zufall durch Klasse Random
*/
public Genom(int length) {
this.length = length;
aminoAcids = new char[length];
int zufall = 0;
for(int i = 0; i < length; i++){
zufall = Random.generateRandomInt(4);
aminoAcids[i] = ALPHABET[zufall];
}
}
public char[] getAASequence() {
return aminoAcids;
}
public int getLength() {
return this.length;
}
//gibt Sequenz als String zurück
public String toString() {
StringBuffer b = new StringBuffer();
char [] aminoAcids = getAASequence();
//int length = getLength();
for(int i = 0; i < aminoAcids.length; i++){
b.append(aminoAcids[i]);
}
String s = b.toString();
return s;
}
public void deletion() {
char [] aminoAcids = getAASequence();
int length = getLength();
char [] deletedAcid = new char [aminoAcids.length - 1];
int random = Random.generateRandomInt(aminoAcids.length - 1);
int count = 0;
for(int i = 0; i < aminoAcids.length; i++){
if(i == random){
count = count - 1;
}else{
deletedAcid[count] = aminoAcids[i];
}
count++;
}
aminoAcids = new char[deletedAcid.length];
for(int i = 0; i < deletedAcid.length; i++){
aminoAcids[i] = deletedAcid[i];
}
}
public static void main(String[] args) {
Genom g1 = new Genom(5);
g1.deletion();
}
Zuletzt bearbeitet von einem Moderator: