如何查找Java中char[] seqarr的前三个字符是否以此顺序(不区分大小写)的A/a, T/t, G/g

我试过了

for(int i = 0; i <= 2; i++){
    if(seqarr[i] == 'A'|| seqarr[i] == 'a' ||seqarr[i] ==  'T' ||seqarr[i] ==  't'|| seqarr[i] == 'G'|| seqarr[i] == 'g' ){
        return true;
}

最佳答案

使用字符串更容易,但是不必要:您可以简单地使用单个字符,将它们大写以规范化大小写:

return arr.length >= 3
    && Character.toUpperCase(arr[0]) == 'A'
    && Character.toUpperCase(arr[1]) == 'T'
    && Character.toUpperCase(arr[2]) == 'G';


这样可以避免创建任何对象,因此可能比转换为String更快。

您还可以明确说明大小写变体:

(arr[0] == 'A' || arr[0] == 'a')


代替Character.toUpperCase等。缺点是在复制和粘贴时很容易犯一个错误,即获取正确的大写/小写对(如下面@Tim的注释所示:A/t而不是A/a )。

08-07 14:27