Объект класса не сохраняет изменения частного массива char - PullRequest
0 голосов
/ 04 ноября 2019

Я должен написать класс, который состоит из генома букв A, C, G и T. Во-первых, последовательность должна быть случайным образом создана в публичном геноме (длина int). Затем, в методе «удаление», случайно выбранный символ генома должен быть удален. Проблема сейчас в том, что мой объект g1 не сохраняет результат этого процесса. Поэтому, если у меня есть «ACTTGC» в качестве генома, то тот же самый геном будет продолжать выходить в качестве выходных данных (несмотря на то, что массив символов, в котором сохранены все эти буквы, был изменен), без его изменения. К сожалению, мне разрешено использовать только эти методы. Мне не разрешено создавать другой метод (например, сеттер). Можете ли вы помочь мне и рассказать, как сохранить новую последовательность в моем объекте.

мой JavaScript:

import java.util.Arrays;
public class Genom {

    //length of genome
    private int length = 0;

    //Sequence of aminoacids
    private char[] aminoAcids;

    //vocabulary
    static final char[] ALPHABET = {'A', 'C', 'G', 'T'};  
    /**
     * Construction of the genome 
     */
     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;        
    }
    //returns sequence as a string
    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();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...