【发布时间】:2021-05-22 02:34:39
【问题描述】:
所以我正在创建一个 Java 程序来验证用户是否输入了有效的电话号码。
我正在使用character array 存储电话号码。
我相信我在 for 循环中的 Switch/Cases 设置会导致逻辑错误并打印出电话号码无效,尽管它是有效的。
当我遍历数组时,我正在寻找一个字符匹配;如果未找到匹配项,则它不是 valid phone number。
for(int k =0; k < phoneNumArray.length; k++)
{
/* If
/* Switch Case used to validae each array element*/
switch(k)
{
case 0:
if(phoneNumArray[0] != '(')
{
System.out.println("MISSING LEFT PARENTHESIS NOT A PHONE NUMBER");
right_num = false;
}break;
case 1:
if(phoneNumArray[1] == '0' || !(phoneNumArray[1]<= '1' || phoneNumArray[1]>= '9') || (phoneNumArray[1] >= 'A' || phoneNumArray[1] <= 'z') )
{
System.out.println("MISSING VALID INTEGER");
right_num = false;
}break;
case 2:
if(!(phoneNumArray[2] >= 0 || phoneNumArray[2] <= 9) || (phoneNumArray[2] >= 'A' || phoneNumArray[2] <= 'z') )
{
System.out.println("MISSING VALID INTEGER");
right_num = false;
}break;
case 3:
if(!(phoneNumArray[3] >= 0 || phoneNumArray[3] <= 9) || (phoneNumArray[3] >= 'A' || phoneNumArray[3] <= 'z') )
{
System.out.println("MISSING VALID INTEGER");
right_num = false;
break;
};
case 4:
if(phoneNumArray[4] != ')')
{
System.out.println("MISSING RIGHT PARENTHESIS NOT A PHONE NUMBER");
right_num = false;
break;
};
case 5:
if(!(phoneNumArray[5] >= 0 || phoneNumArray[5] <= 9) || (phoneNumArray[5] >= 'A' || phoneNumArray[5] <= 'z') )
{
System.out.println("MISSING VALID INTEGER");
right_num = false;
}break;
case 6:
if(!(phoneNumArray[6] >= 0 || phoneNumArray[6] <= 9) || (phoneNumArray[6] >= 'A' || phoneNumArray[6] <= 'z') )
{
System.out.println("MISSING VALID INTEGER");
right_num = false;
}break;
case 7:
if(!(phoneNumArray[7] >= 0 || phoneNumArray[7] <= 9) || (phoneNumArray[7] >= 'A' || phoneNumArray[7] <= 'z') )
{
System.out.println("MISSING VALID INTEGER");
right_num = false;
}break;
case 8:
if(phoneNumArray[8] != '-')
{
System.out.println("MISSING A DASH NOT A PHONE NUMBER");
right_num = false;
}break;
case 9:
if(!(phoneNumArray[9] >= 0 || phoneNumArray[9] <= 9) || (phoneNumArray[9] >= 'A' || phoneNumArray[9] <= 'z') )
{
System.out.println("MISSING VALID INTEGER");
right_num = false;
}break;
case 10:
if(!(phoneNumArray[10] >= 0 || phoneNumArray[10] <= 9) || (phoneNumArray[10] >= 'A' || phoneNumArray[10] <= 'z') )
{
System.out.println("MISSING VALID INTEGER");
right_num = false;
}break;
case 11:
if(!(phoneNumArray[11] >= 0 || phoneNumArray[11] <= 9) || (phoneNumArray[11] >= 'A' || phoneNumArray[11] <= 'z') )
{
System.out.println("MISSING VALID INTEGER");
right_num = false;
}break;
case 12:
if(!(phoneNumArray[12] >= 0 || phoneNumArray[12] <= 9) || (phoneNumArray[12] >= 'A' || phoneNumArray[12] <= 'z') )
{
System.out.println("MISSING VALID INTEGER");
right_num = false;
}break;
【问题讨论】:
-
请同时提供您的示例输入。
标签: java arrays switch-statement