如何使用char输入和布尔输出的方法?

时间:2015-10-02 22:18:32

标签: java char boolean

谢谢大家的答案!还有一个问题:如何打印出布尔值? System.out.println(goodBase)似乎无法正常工作

public class Dna {
      public static void main(String[] args){
      aBase('A');
     }

      public static boolean aBase (char c) {                 
        char [] charArray = { 'A', 'G', 'C', 'T' };
        boolean goodBase;

        if (c == 'A' || c == 'G' || c == 'C' || c == 'T') 
        {
          return true;     
        } 
        else 
        {
          return false;
        }
      }  
    }

谢谢!

3 个答案:

答案 0 :(得分:2)

如果您在适当的环境中使用该代码,该代码正在为我工​​作。我在下面附上了一份完整的功能样本:

public class Main {

    // create a Test Method
    public static boolean test(char c) {
        if (c == 'A' || c == 'G' || c == 'C' || c == 'T') {
            return true;
        } else {
            return false;
        }
    }

    public static void main(String[] args) {

        // create some sample data
        String sample = "AGCTEDHI";

        // test
        for (int i = 0; i < sample.length(); i++) {
            char current = sample.charAt(i);
            System.out.println(current + " is " + test(current));
        }

    }
}

输出:

A is true
G is true
C is true
T is true
E is false
D is false
H is false
I is false

答案 1 :(得分:0)

我认为是这样的:

char [] charArray = { 'A', 'G', 'C', 'T' };
if (base == charArray[0] || base == charArray[1] || 
        base == charArray[2] || base == charArray[3])
  return true; // a good base
return false;

答案 2 :(得分:0)

首先,在char语句中检查的aGoodBase方法中没有声明if命名变量。

其次,这是真正的交易,这样的变量永远不会存在,因为char是Java中的保留关键字(如byteintlongpublicstrictfp等),它只能用于将变量声明为原始char类型。

这解答了DnaTest未编译的原因。

现在,让我们为您的答案考虑一个可能的解决方案:

    public class DnaTest {

        private final static char [] baseArray = {'A', 'C', 'G', 'T'};

        // checks whether String s only contains the right base elements or not
        public static boolean aGoodBase(String s){
                String s1 = s.toUpperCase(); // just ensuring case insensitive checks
                for (int i=0; i<s1.length(); i++) {
                        char check = s1.charAt(i);
                        if (baseArray[0] != check &&
                              baseArray[1] != check &&
                              baseArray[2] != check &&
                              baseArray[3] != check) {
                                   // at least one char of s is not in baseArray
                                   return false;
                                }
                }
                return true;
        }

        public static void main(String[] args) {
                // should be true
                System.out.println("Does GATTACA have aGoodBase? " + aGoodBase("GATTACA"));
                // should be false
                System.out.println("Does MORROW have aGoodBase? " + aGoodBase("MORROW"));
                // should be true, the check on the base is case insensitive
                System.out.println("Does GaTTaca have aGoodBase? " + aGoodBase("GaTTaca"));
                // should be false
                System.out.println("Does GATMOR have aGoodBase? " + aGoodBase("GATMOR"));

        }
    }

输出:

Does GATTACA have aGoodBase? true
Does MORROW have aGoodBase? false
Does GaTTaca have aGoodBase? true
Does GATMOR have aGoodBase? false

现在aGoodBase方法接受一个String,如果s只包含baseArray数组中声明的四个基本元素的组合,则返回true。即使基本元素不是大写字母(如主要的第三个例子:GaTTaca),我也冒昧地返回true。