【问题标题】:Boolean method with strings [closed]带字符串的布尔方法[关闭]
【发布时间】:2013-04-28 04:09:16
【问题描述】:

我目前正在执行此任务。在任务的第一部分,它要求我用布尔值检查一个字符串。仅当输入字符串的每个字符都是 a、A、c、C、g、G、t 或 T 之一时,它才返回 true。如果字符串为 null 或空,则返回 false。我对此有点迷茫,因为我不知道如何比较它。我正在研究使用数组并检查字符串的 for 循环。这是一个可行的选择吗?如果没有,我应该看看其他选择吗?

到目前为止,这是我的代码。我将字符串 s 设置为小写,以便仅用 4 个字符进行比较。

    public static boolean isDNASequence(String s) {
    boolean isDNASequnce = false;
    char [] acceptableInput = {'a', 'c', 'g', 't'};
    String x = s.toLowerCase();

我是一个非常大的 java 菜鸟,所以如果我不知道我在这里的路,请原谅:D

【问题讨论】:

  • 您应该尝试一下,并发布一些您遇到问题的代码。然后我们可以给你提示和帮助。

标签: java arrays for-loop character


【解决方案1】:

尝试使用正则表达式。
模式 [aAcCgGtT]+ 应该与您要查找的内容匹配。

例如:

public static boolean isDNASequence(s) {
  return s.matches("^[aAcCgGtT]+$");
}

为了进一步解释,引号中的模式表示匹配: ^ - 从字符串的开头 [aAcCgGtT] - 这些字符中的任何一个 + - 至少一次 $ - 到字符串的末尾

【讨论】:

  • 你是怎么做到的?我很抱歉,因为我真的对此一无所知
  • 已更新。看看吧。
【解决方案2】:

您可以在 Java 文档中找到方法 String.matches()。如果字符串匹配正则表达式,它将返回 true。

正则表达式模式[aAcCgGtT]+ 可能是您正在寻找的。​​p>

我发现this 是学习正则表达式的非常好的指南!

【讨论】:

    【解决方案3】:

    我想这就是你要找的。​​p>

    public static boolean isDNASequence(String s) {
        char[] acceptableInput = { 'a', 'c', 'g', 't' };
        String x = s.toLowerCase();
    
        for (int i = 0; i < x.length(); i++) {
    
            boolean isAcceptable = false;
    
            for (int j = 0; j < acceptableInput.length; j++) {
                if (x.charAt(i) == acceptableInput[j])
                    isAcceptable = true;
            }
    
            if (isAcceptable == false)
                return false;
    
        }
        return true;
    
    }
    

    【讨论】:

      【解决方案4】:

      试试这个

      public static boolean isDNASequence(String s) {
          for (int i = 0; i < s.length(); i++) {
              if ("AaCcGgTt".indexOf(s.charAt(i)) == -1) {
                  return false;
              }
          }
          return true;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-02
        • 1970-01-01
        • 2020-04-18
        • 1970-01-01
        • 2013-06-13
        • 2012-11-22
        • 1970-01-01
        相关资源
        最近更新 更多