如果最后的数字为0,则为Java

时间:2015-05-06 14:29:30

标签: java arrays loops input

我正在尝试创建一个允许用户输入任意数量的java程序。如果他们输入0,程序会说树是假的。我得到了它的工作,但我想要它所以如果输入的最后两个数字是0,程序将打印为true。 0表示空

例如,如果他们输入5个数字:

2 4 5 0 0 = true

2 0 5 0 0 =假

2 4 5 6 7 = true

其他所有东西都令人困惑所以我简化了它

    System.out.println("Enter a number or enter 0 to represent null: ");
    for(int i=0;i<num;i++)
    {
        arr[i] = input.nextInt();
        if(arr[i] == 0)
        {
            isTree = false;
        }
    }

    System.out.println("Is this a tree: " + isTree);

5 个答案:

答案 0 :(得分:0)

做你正在做的事情,但最后检查两个零:

System.out.println("Enter a number or enter 0 to represent null: ");
for(int i=0;i<num;i++)
{
    arr[i] = input.nextInt();
    if(arr[i] == 0 && i < arr.length-2) //ignore if last two nodes
    {
        isTree = false;
    }
}
boolean isTree2 = (arr[arr.length-1] == 0 && arr[arr.length-2] == 0)
               || (arr[arr.length-1] != 0 && arr[arr.length-2] != 0);
System.out.println("Is this a tree: " + (isTree && isTree2));

答案 1 :(得分:0)

您可以使用正则表达式“ [1-9] +0 {2} ”=&gt; 1到9之间的一个或多个数字,最后是2个零。

代码示例:

System.out.println("Enter a number or enter 0 to represent null: ");
java.util.regex.Pattern pattern = Pattern.compile("[1-9]+0{2}");
java.util.regex.Matcher matcher = pattern.matcher("20500");
boolean isTree = false;
while(matcher.find()) {
    isTree = true;
}
System.out.println("Is this a tree: " + isTree);

您可以尝试使用此工具测试正则表达式:https://www.debuggex.com/

答案 2 :(得分:0)

我想你想要的是,如果最后两位数为零,那么你的程序会说它是真的。

int length = arr.length;
boolean isTree = false;
if(length >= 2) {
    if(arr[length-1] == 0 && arr[length-2] == 0) {
        isTree = true;
    }
}
System.out.println(isTrue);

答案 3 :(得分:0)

   System.out.println("Enter a number or enter 0 to represent null: ");
   boolean cond = false;
    for(int i=0;i<num;i++){
        arr[i] = input.nextInt();
        if(arr[i] == 0){
            cond = true;
        }
        if(arr[i] !=0 && cond){
            isTree = true;
             break;
        }
    }

    System.out.println("Is this a tree: " + isTree);

答案 4 :(得分:0)

当您输入输入时我不打扰检查,但在完成所有输入后检查。我会将所有输入连接成一个字符串,然后计算字符串以确定它是否满足您的树条件。

public static void main(String[] args) throws Exception {
    int num = 5;
    int[] arr = new int[num];

    System.out.println("Enter a number or enter 0 to represent null: ");
    for (int count = 0; count < 5; count++) {
        for (int i = 0; i < num; i++) {
            arr[i] = input.nextInt();
        }

        // Arrays.toString(arr) results in [2, 4, 5, 0, 0]
        // Remove all brackets, commas, and spaces
        String inputs = Arrays.toString(arr).replaceAll("\\[", "").replaceAll("\\]", "").replaceAll(", ", "");

        boolean isTree = true;
        // Only have to check for ending 00 if you know a 0 is in your inputs
        if (inputs.contains("0")) {
            isTree = inputs.endsWith("00") && !inputs.substring(0, inputs.length() - 2).contains("0");
        }

        System.out.println("Is this a tree: " + isTree);
        System.out.println("");
    }
}

结果:

enter image description here