当前位置: 首页 > 知识库问答 >
问题:

多选项字符串颜色输入验证?

夏景胜
2023-03-14

我正在苦于一个程序,它让用户在两种颜色之间进行选择,要么输入全色(不区分大小写),要么输入颜色的第一个字母(不区分大小写),这取决于他们输入的颜色,它会自动将另一个分配给不同的变量。我的两个选项是蓝色和绿色,蓝色似乎工作良好,但当我输入绿色或g时,方法不断要求我输入一个新的输入。这里是我的程序的一个片段,处理颜色分配。

import java.util.*;
public class Test{
  public static Scanner in = new Scanner (System.in);
  public static void main(String []args){

    System.out.println("Chose and enter one of the following colors (green or blue): ");
    String color = in.next();
    boolean b = false;
    while(!b){
      if(matchesChoice(color, "blue")){
        String circle = "blue";
        String walk = "green";
        b = true;
      }
      else if(matchesChoice(color, "green")){
        String circle = "green";
        String walk = "blue";
        b = true;
      }
    }     

  }
  public static boolean matchesChoice(String color, String choice){
    String a= color;
    String c = choice;
    boolean b =false;
    while(!a.equalsIgnoreCase(c.substring(0,1)) && !a.equalsIgnoreCase(c)){
      System.out.println("Invalid. Please pick green or blue: ");
      a = in.next();
    }
    b = true;
    return b;

  }

}

我基本上是创建一个while循环,确保用户选择其中一个颜色选项,并创建一个方法来确定用户输入的字符串是否与问题的字符串选项匹配。

共有1个答案

宗政天逸
2023-03-14

else if(matchesChoice(color,“Green”))不可访问。输入GGreen时将调用MatchesChoice(color,“Blue”)方法,因此它总是将其与BBlue进行比较。然后在该方法中,它继续循环,因为您一直输入ggreen

只要matchesChoice返回truefalse(如果colorchoice匹配):

public static boolean matchesChoice(String color, String choice){
    String a= color;
    String c = choice;
    if (a.equalsIgnoreCase(c.substring(0,1)) || a.equalsIgnoreCase(c)) {
        return true;
    }
    return false;
}

然后在main中的while循环中添加对用户输入的扫描:

boolean b = false;
System.out.println("Chose and enter one of the following colors (green or blue): ");
while(!b){
    String color = in.next();
    if(matchesChoice(color, "blue")){
        String circle = "blue";
        String walk = "green";
        b = true;
    }
    else if(matchesChoice(color, "green")){
        String circle = "green";
        String walk = "blue";
        b = true;
    }
    else {
        System.out.println("Invalid. Please pick green or blue: ");
    }
}
 类似资料:
  • 问题内容: 我正在制作一个应用程序,在某个时候我需要用户选择一种颜色,但是不仅有50个radioButtons,我想知道是否有可能从文本字段或其他内容中真正获得他们想要的颜色。 问题答案: 仅仅制作一个JComboBox或类似的东西会更容易吗? 但是要回答您的问题:是的,有可能。我将提供一段代码,您可以将其用作入门(假设您仍然希望为字符串上色)

  • 嗨,我的代码有一些问题,我需要接受一个3行的输入,并计算输入中“$”的数量。输入方法未注释为“scanf(”%[]s“,&userinput);”是唯一一个我发现采取所有3行输入,但我不能打破输入循环继续我的程序。 任何帮助都将不胜感激

  • 问题内容: 我试图做一个多项式运算符(两个,多个多项式的和,余数,乘法和除法)。该代码必须使用Java并使用链接列表。 我想知道如何使用计算器或如何验证多项式是否有效。我想从字符串构造一个多项式,但是我不知道是否有另一个类可以简化事情。 这是一项家庭作业,因此我并不需要完整的代码,只是为我指明了正确的方向。 有两类,一类用于节点(命名为Monomio),一类用于列表(命名为Polinomio,是单

  • 正在寻找设置下拉列表占位符的字体颜色的方法。当需要select id时,以下操作起作用: 但是,我不希望输入需要这些下拉列表。一旦我移除所需的标记,占位符字体就会变回黑色。 以下是我的下拉列表:

  • 遵循这篇文章(样式文本输入占位符),我可以将文本输入占位符的颜色改为红色。但它总是一种浅红色,并不完全是红色。 有什么办法可以使它变成红色吗? 更新

  • 通过RGB值设置输入线的颜色。关于连接线定义,请参考这里: 连接线。 默认的输入线颜色是 0x154492: // 颜色的参数可以是字符串 "#00FF00" 或者是十六进制数值 0x00FF00 controller.setImportColor("#00FF00"); //controller.setImportColor(0x00FF00);