내 프로그램은 정규 표현식 [gcatGCAT]으로 제한된 문자열을 가져 와서 해당 문자열을 보완 문자의 문자열로 변환합니다. 보완 문자는 g ~ c, c ~ g, a ~ u, t ~ a입니다.내 문자열이 보유하거나 사용할 수있는 char 데이터의 양은 어느 정도입니까?
예를 들어, 사용자 입력 문자열 "gact"는 "cuga"를 생성해야합니다.
그러나 길이가 50 자 이상인 문자열을 입력 할 때 (얼마 동안 입력했는지 계산하지 못했을 때 잠시 동안 키보드의 g 및 c 키를 눌렀습니다.) 내 컴퓨터의 RAM, 프로그램이 멈추었 고 내 운영 체제 배경이 바뀌 었습니다. (나는 무서웠 기 때문에 그것을 시도하고 재현하고 싶지 않았다.)
큰 문자열을 입력하고 연산을 수행하기에는 너무 많은 램을 사용하고 있는가? 그게 문제라면 많은 메모리를 사용하지 않기 위해 이것을 단순화 할 수있는 방법이 있습니까? 나는 현실적으로 200 ~ 500자를 받아들이는 것을 좋아할 것입니다. 1000 명이 가장 적합합니다. 나는 코딩에 초보자이므로 어쨌든 내가 틀렸다면 나를 용서해주십시오.
import java.text.DecimalFormat;
import javax.swing.SwingUtilities;
import javax.swing.JOptionPane;
import java.util.Random;
//getting my feet wet, 1/13/2015, program is to take a strand of nucleotides, G C A T, for DNA and give
//the complementary RNA strand, C G U A.
public class practiceSixty {
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable() {
public void run() {
String input = null;
boolean loopControl = true;
char nucleotide;
int repeat;
do{
do{
input = JOptionPane.showInputDialog(null, " Enter the sequence of nucleotides(G,C,A and T) for DNA, no spaces ");
}while(!input.matches("[GCATgcat]+")); //uses regular expresions, This method returns true if, and only if, this string matches the given regular expression.
JOptionPane.showMessageDialog(null, "the data you entered is " + input);
StringBuilder dna = new StringBuilder(input);
for(int i = 0; i < input.length(); i++)
{
nucleotide = input.charAt(i);
if(nucleotide == 'G' || nucleotide == 'g')
{
dna.setCharAt(i, 'c');
}
else if(nucleotide == 'C' || nucleotide == 'c')
{
dna.setCharAt(i, 'g');
}
if(nucleotide == 'A' || nucleotide == 'a')
{
dna.setCharAt(i, 'u');
}
else if(nucleotide == 'T' || nucleotide == 't')
{
dna.setCharAt(i, 'a');
}
}
JOptionPane.showMessageDialog(null, "the DNA is , " + input + " the RNA is " + dna);
repeat = JOptionPane.showConfirmDialog(null, "Press Yes to continue, No to quit ", "please confirm", JOptionPane.YES_NO_OPTION);
}while(repeat == JOptionPane.YES_OPTION);
}
});
}
}
코드를 올바르게 들여 씁니다. –
코드가 50 자 이상으로 어떻게 쓰이는지 보지 못합니다. 코드 가독성이 약간 향상 될 수 있지만 나에게는 충분히 효율적으로 보일 수 있습니다. 프로그램이 실제로 CPU 시간을 소비합니까? –
@ValentinRuano 어떻게 결정할 지 모르겠습니다. 내가 아는 건 50 명 이상의 캐릭터들과 조금 씩 얼어 버렸고 프로그램을위한 GUI는 검게되었다. 그래도 감사합니다. –