gpt4 book ai didi

java - 将 char 与 java 与 python 中的字符串索引进行比较

转载 作者:行者123 更新时间:2023-11-29 04:35:01 25 4
gpt4 key购买 nike

我知道有很多答案可以简单地解决如何在 Java 中执行此操作,但我正在寻找一个在概念上类似于我可能在 Python 程序中执行的实现的解决方案,因为那是我更熟悉。

我的 Java 函数 cgRatio 接受一个 DNA 字符串并遍历每个索引以计算字符串中“C”和“G”字符值的出现次数,并返回相对于字符串长度的比率字符串。例如,如果我将以下字符串作为函数的参数传递:"ATGGCGCATTAA" 我会得到 5/12 的返回值或 4.1666...

的 float

在 Python 中,这个函数可以这样写:

def cgRatio(dna):
count = 0
for i in range(len(dna)):
if dna[i] == "C" or dna[i] == "G":
count += 1
return 1.0 * count/len(dna)

一个简单的 print cgRatio("ATGGCGCATTAA") 将产生所需的结果。

我见过一些解决方案,例如采用 dna.charAt(i) 并将其转换回字符串或在函数开头实例化新的 char 对象比较。对于如此简单的任务,这似乎过于复杂。 Python 只是在这项任务中更胜一筹,还是有更有效的方法在 Java 中完成这项工作?

最佳答案

简单的java代码是:

for (int i = 0; i < dna.length(); i++) {
char c = dna.charAt(i);
if (c == 'C' || c == 'G') {
count++;
}
}
return (double)count / dna.length();

绝对没有理由为了比较它们而将字符转换为“字符串”!

如果您正在寻找“更少”的代码解决方案,您可以使用“for each”风格:

for (char c : dna.toCharArray()) {

易于理解,易于阅读,但要以创建 new char array 为代价.

关于java - 将 char 与 java 与 python 中的字符串索引进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42019243/

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