gpt4 book ai didi

java - 这里发生了什么?

转载 作者:行者123 更新时间:2023-12-01 17:43:06 24 4
gpt4 key购买 nike

有效印度手机号码的规则:

该号码应包含 10 或 11 或 12 位数字。

如果包含 10 位数字,则第一位数字应为 7 或 8 或 9。

如果包含 11 位数字,则第一位数字应为 0,然后遵循第二个规则。

如果包含 12 位数字,则前两位数字应为 91,然后遵循第二条规则。

对于测试用例:

1
881906355596

此代码应该产生 Invalid,但它显示为 Valid。

import java.util.*;
import java.lang.*;
import java.io.*;
class GFG
{
public static void main (String[] args)
{
Scanner scan = new Scanner(System.in);
int t=scan.nextInt();
while((t--)!=0){

String s = scan.next();
int length = s.length();

if((length==10) &&((s.charAt(0)=='7')||(s.charAt(0)=='9')||(s.charAt(0)=='8')))
System.out.println("Valid");

else if((length==11) &&(s.charAt(0)=='0')&&(s.charAt(0)=='7')||(s.charAt(0)=='9')||(s.charAt(0)=='8'))
System.out.println("Valid");//code

else if((length==12) &&(s.charAt(0)=='9')&&(s.charAt(1)=='1'))
System.out.println("Valid");//code

else System.out.println("Invalid");
}
}
}

最佳答案

你的第二个和第三个条件是错误的。

第二个条件错误地为您的 881906355596 输入返回 true

如果您按如下方式安排,您就会明白原因:

else if (
(length==11) && // false &&
(s.charAt(0)=='0') && // false &&
(s.charAt(0)=='7') || // false ||
(s.charAt(0)=='9') || // false ||
(s.charAt(0)=='8') // true
) // equals true

应该是:

else if (length == 11 && s.charAt(0) == '0' && (s.charAt(1) == '7' || s.charAt(1) == '9' || s.charAt(1) == '8'))

第三个条件应该是:

else if (length == 12 && s.charAt(0) == '9' && s.charAt(1) == '1' && (s.charAt(2) == '7' || s.charAt(2) == '9' || s.charAt(2) == '8'))

关于java - 这里发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58603008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com