我正在尝试创建一个允许用户输入任意数量的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);
答案 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("");
}
}
结果: