Я новичок в программировании.Я не понимаю, почему один из конструкторов, которые я использую для проверки правильности символов строкового аргумента в конструкторе, не работает.конструктор должен проверить, содержит ли введенная строка только символы G, C, A, T, иначе он выдает IllegalArgumentException
.
. Я попытался использовать массив символов, чтобы проверить правильность строки, используяметод toCharArray()
для введенной строки.Конструктор работает для недопустимых строк, но не для допустимых строк.но другой конструктор, который я использовал, работает.пожалуйста, дайте мне знать, почему первый не работает.
// это первый конструктор, который не работает для меня
public class Fragment {
private String nucleotideSequence;
public Fragment(String nucleotides) throws IllegalArgumentException {
char[] validityCheck = nucleotides.toCharArray();
int validityCounter = 0;
for (char c : validityCheck) {
if(c != 'G' || c != 'C' || c != 'A' || c != 'T') {
validityCounter++;
}
}
if (validityCounter != 0) {
throw new IllegalArgumentException("Invalid characters present");
}
nucleotideSequence = nucleotides;
}
}
// это второй конструктор, который работает
public class Fragment {
private String nucleotideSequence;
public Fragment(String nucleotides) throws IllegalArgumentException {
boolean k = false;
for(int i = 0; i < nucleotides.length(); i++){
char lol = nucleotides.charAt(i);
if(lol=='A'||lol=='G'||lol=='C'||lol=='T'){
k = true;
}
else{
k = false;
}
if(k == false){
throw new IllegalArgumentException("Dosent work");
}
nucleotideSequence = nucleotides;
}
}
}