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

Java 计算字符串数组中字符的出现次数,java,string,loops,slice,Java,String,Loops,Slice,我正在编写一个Java程序,用于计算数组(核苷酸序列列表)中字符串(核苷酸序列)中特定字符(nuc)的外观。这意味着返回具有最多字符外观的字符串 输入:字符串列表(例如{“aaagt”、“cgaat”、“ttt”}),char=“a”/ 输出:“aaagt”(因为大多数出现“a”) 下面是我编写的Python版本。如何将其转换为Java def DNAMaxNucleiotide(listStrings, nuc): nucCount = 0 SEQ = '' for

我正在编写一个Java程序,用于计算数组(核苷酸序列列表)中字符串(核苷酸序列)中特定字符(nuc)的外观。这意味着返回具有最多字符外观的字符串

输入:字符串列表(例如{“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 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();
}
试验

输出

aaagt

您确定这需要一个
Java
标记吗?你只是把这个问题推给所有听Java标签的人。。我想你只需要一个基本的算法。也许你可以检查一下,例如:
System.out.println(dnaMaxNucleiotide('a', "aaagt","cgaat","ttt"));