【发布时间】:2011-09-21 14:32:59
【问题描述】:
我的班级的这段代码有问题:这里有问题
1.) 成功后不循环
(代码编译但是当它询问“你的电话号码是多少?”并且我输入 909-8930 时,输出只是回答:正确直到退出(带有电话号码)。我假设它假设循环?)
2.) 由于括号中的错误:
phone = phone.replaceAll("(","");
phone = phone.replaceAll(")","");
但是当我将它们注释掉并离开时效果很好:
phone = phone.replaceAll("-","");
3.) 没有使用 boolean 命令进行最大字符验证。 (我们必须使用我们在课堂上学到的代码)
我正在使用 Vista(我知道,很糟糕)cmd 来编译 Java 代码。
/*
*/
import java.util.Scanner; //
public class PhoneNumber
{
//********number()******
public static boolean Number(String str)
{
int n=0;
while(n<str.length()) //while condition for the loop
{
char c=str.charAt(n);
if(!(c>='0'&&c<='9'))return(false);//0 to 9
n++; // counter and checked loop?
}
return (true);
}
// Phone Number
public static void main(String[] args)
{
// Create a Scanner object to read input.
String phone;
Scanner sc = new Scanner(System.in);
// Get the favorite city
System.out.print("What is your phone number?"); // no ln
phone=sc.nextLine( );
//replace all perenthesis and dashes
phone = phone.replaceAll("-","");
phone = phone.replaceAll("(","");
phone = phone.replaceAll(")","");
// validation of number
if(Number(phone))
{
// sub stuff to add back the dash and whateves
String first,middle,last;
first = phone.substring (0,3);
middle = phone.substring (3,6);
last = phone.substring (6);
String phonea = "("+ first + ")" +"-"+middle+ "-"+last;
// print stuff back
System.out.println ("correct until exit"+ phonea);
// condition to exit
if (phone.equalsIgnoreCase("quit")); //not working?
if (phone.equalsIgnoreCase("end"));
if (phone.equalsIgnoreCase("stop"))System.exit(0);
}
else
{
System.err.println("error-incorrect format: "+ phone); //error
}
}
}
【问题讨论】:
-
你如何提供你的输入,你得到的输出是什么?
-
@Simon Chan 您明确表示这是家庭作业,我们对此表示赞赏,但请确保标记适当。我冒昧地重新标记。
-
成功后不循环是什么意思?此外,它给括号带来了什么错误,它们对我来说看起来不错。调用你的函数
Number并没有错,但它更难理解,因为使用is后缀返回布尔值的函数效果很好。像isNumber这样的东西会更合适。 -
@adithya:代码可以编译,但是当它询问“你的电话号码是多少?”时我输入 909-8930 输出只是回答:正确直到退出(带有电话号码)。我假设它应该循环? @matthew:谢谢(我第一次使用这个*)! @ryan:如果您在输入正确格式后放置了一个while语句(循环)和输入,难道不是要重新提出问题吗?它不这样做。括号可能是操作系统错误(讲师在说),但我想确定,因为在我用“\”隐藏它之后它仍然无法工作
-
@Simon:您可能希望使用您在评论中提供的信息来编辑您的原始问题。关键是让您的问题尽可能容易回答。
标签: java validation loops phone-number