gpt4 book ai didi

java - 我的字符串可以保存或使用多少字符数据?

转载 作者:行者123 更新时间:2023-12-01 12:01:37 25 4
gpt4 key购买 nike

我的程序是获取仅限于正则表达式 [gcatGCAT] 的字符串,并将该字符串转换为互补字符的字符串。互补字符是 g 到 c、c 到 g、a 到 u、t 到 a。

例如,用户输入的字符串“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);
}
});
}
}

最佳答案

您可以只使用 string.replace()。但是,您不能只用一个替换另一个,因为这会搞砸以后的替换。

input = input.toLowerCase();
input = input.replace('a','1');
input = input.replace('c','2');
input = input.replace('g','3');
input = input.replace('t','4');
input = input.replace('1','u');
input = input.replace('2','g');
input = input.replace('3','c');
input = input.replace('4','a');

关于java - 我的字符串可以保存或使用多少字符数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27948061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com