【问题标题】:Java, class, Boolean, logic messJava,类,布尔值,逻辑混乱
【发布时间】:2019-04-14 11:24:46
【问题描述】:

因此,我们被要求为这个 ScantronGrader 编写家庭作业,规范说我们必须创建这个类 isValid 来检查属于 A、B、C 或 D 的选项的有效性(所有大写),我首先尝试了switch(错误),if-else-if(错误); do-while(哦,我知道错了)。我先尝试了for循环,但值没有增加。

在最近的版本中,这是我的问题。 TBH,我什至不知道我在做什么了。

public static boolean isValid(String inputstr)
    {
        int x = 0;
        do
        {
            switch (inputstr.charAt(x))
            {
            case 'A':
            case 'B':
            case 'C':
            case 'D':
                return true;
        default: return false;
        x++;    
            }
        } while (x < inputstr.length());
    }
}

问题在于它不允许我增加计数器。现在,我需要这样做,否则,我将如何右移?无论哪种方式,请暂停。

【问题讨论】:

  • "TBH, I don't even know what I am doing anymore" -- 我能感觉到你的痛苦,但在这种情况下,你想做的就是与你的导师或知识渊博的同学一起进行激烈的一对一帮助。
  • 您需要在静态方法之外进行检查,或者将其作为动态类的属性。语句“return”结束操作,因此之后的所有内容都不会执行。你可以使用try-finally。但是,最重要的是,您可以在 java 和编码方面使用好的导师。
  • 你能提供一个输入和预期输出的例子吗?目前还不太清楚您要做什么。
  • 谢谢!实际上,这是我的第一个学期。我的专业实际上是统计学,但显然,这是一个要求。我想我还不如专心听课,而不是偷作业。我需要正确引导 b/c 成绩以 AbcDX.... 格式输入。所以,基本上,我正在检查字符串中的每个值。输出基本上显示值 X 无效。这就是这种方法的目的。而我在海上。
  • 所以你需要检查一个字符串说(ABCDX)中是否出现了X?如果是,那么你想返回 false 吗?有这个要求吗?

标签: java string class boolean logic


【解决方案1】:

不确定我是否理解该方法必须做什么,但如果它必须在字符串有这些字母时才返回 true,你可以这样做:

public static boolean isValid(String inputstr)
{
    int x = 0;
    boolean bool = true;
    do
    {
        if(!(inputstr.charAt(x) == 'A' || inputstr.charAt(x) == 'B' || inputstr.charAt(x) == 'C' || inputstr.charAt(x) == 'D'))
    {
        bool = false;
    }
    x++;
    }while (x < inputstr.length());
    return bool;
}

【讨论】:

  • 它必须计算字母。如果它返回,则计数器丢失:)
【解决方案2】:

好的,经过这里的一些想法(感谢您伸出援手),我正在玩弄这个似乎可行的想法。如果我在做任何不必要/无用的事情,或者有更有效的方法可以做到这一点,请告诉我?

public static boolean isValid(String inputstr) {
        int count = 0;
        for (int x = 0; x < inputstr.length(); x++) {
            switch (inputstr.charAt(x)) {
            case 'A':
            case 'B':
            case 'C':
            case 'D':
            break;
            default: count++;
            }
        }
        if (count == 0) {
            return true;
        }
        else {
            return false;
        }
    }

【讨论】:

  • 这对于没有'X'的字符串也会返回false。例如(ABCDLWE、ABCDL 等)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-14
  • 1970-01-01
  • 2021-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-11
相关资源
最近更新 更多