计算字符串数组中char的出现次数

问题描述 投票:0回答:1

我正在编写一个Java程序,该程序对数组(核苷酸序列列表)的字符串(核苷酸序列)内的特定char(nuc)的出现进行计数。这是为了返回字符出现次数最多的字符串。

input:字符串列表(例如{“ aaagt”,“ cgaat”,“ ttt”}),char =“ a” /输出:“ aaagt”(因为大多数出现“ a”)

[下面,我有写的Python版本。我如何将其翻译成Java?

def DNAMaxNucleiotide(listStrings, nuc):
    nucCount = 0
    SEQ = ''

    for seq in listStrings:
        newCount = 0
        splitSeq = list(seq)
        for char in splitSeq:
            if char == nuc:
                newCount += 1
        if newCount > nucCount:
            nucCount = newCount
            SEQ = seq
        else:
            pass


    return SEQ

谢谢!

java string loops slice
1个回答
0
投票

这是一种实现方法,在Java 8+中:

static String dnaMaxNucleiotide(int codePoint, String... listStrings) {
    return Stream.of(listStrings)
            .max(Comparator.comparingLong(s -> countChar(codePoint, s)))
            .orElse("");
}
private static long countChar(int codePoint, String s) {
    return s.codePoints()
            .filter(cp -> cp == codePoint)
            .count();
}

Test

System.out.println(dnaMaxNucleiotide('a', "aaagt","cgaat","ttt"));

输出

aaagt
© www.soinside.com 2019 - 2024. All rights reserved.