本帖最后由 silencelj 于 2015-4-13 21:00 编辑
- /*
- 需求:1.定义一个手机:有发信息的功能,输入手号后可以显示”发送信息“
- 手机号符合规定则显示发送成功,否则显示发送失败请核对手机号码
- 2.手机号码是11位数,从键盘获取电话号。
- 在通常情况下数据正确返回大于0的数,数据错误返回-1的数
- */
-
- import java.util.Scanner;
- class PhoneDemo
- {
- public static void main(String[] args)
- {
-
- Phone p = new Phone();
- //重键盘获取手机号码
- Scanner scanner = new Scanner(System.in);
- System.out.println("请输入电话号码(11位)");
- int number = scanner.nextInt();
- //根据输入的号码是否正确来调用发信息功能
- int result = p.sendMessage(number);
- //电话号正确则显示电话号码和发送成功,否则发送失败
- if(result>0){
- System.out.println("给:"+result + "发送成功");
- }else{
- System.out.println("发送失败请核对手机号码");
- }
- }
-
- }
- //定义手机
- class Phone
- {
- int number;
- void setNumber(int number)
- {
- this.number = number;
- }
- int getNumber()
- {
- return number;
- }
- //发信息
- int sendMessage(int number)
- {
- System.out.println("正在发短信");
- try{new Thread().sleep(2000);}catch(Exception e){}
- //将获取的电话号转为String类型,
- String str = String.valueOf(number);
- //正则表达式匹配手机1(3、4、5、8)XXXXXXXXX
- String regex = "[1][3458][0-9]{9}";
- //用正则表达式进行手机号码的匹配得到结果
- boolean result =str.matches(regex);
- //如果号码符合要求则返回1,否则返回-1
- if(result)
- {
- return 1;
- }
- else
- {
- return -1;
- }
- }
- }
- /*
- 当输入的手机号小于10的时,编译运行可以
- 请输入电话号码(11位)
- 1234567899
- 正在发短信
- 发送失败
- 当输入手机号为11时,运行出现如下异常
- 请输入电话号码(11位)
- 13255545457
- Exception in thread "main" java.util.InputMismatchException: For input string: "
- 13255545457"
- at java.util.Scanner.nextInt(Scanner.java:2097)
- at java.util.Scanner.nextInt(Scanner.java:2050)
- at PhoneDemo.main(PhoneDemo.java:16)
- 求解释??????????????????????或者有其他的方法实现功能也可以
- */
复制代码
|
|