A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

XuhEii

初级黑马

  • 黑马币:22

  • 帖子:7

  • 精华:0

© XuhEii 初级黑马   /  2016-9-8 22:21  /  728 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

用一个字符串接受手机号码,号码后三位相同为靓号,如何证明号码后三位相同

8 个回复

倒序浏览
拆分后判断,在string对象中应该提供了类似的方法,你去api文档中看下。
回复 使用道具 举报
截取后三位,转为字符数组,再比较
回复 使用道具 举报
把字符串转换为数组,比较最后3位即可
回复 使用道具 举报
你可以通过正则表达式进行判断接收,String regex = "1[3578][0-9]{6}[0-9]\\1{2}"
回复 使用道具 举报

public class Test {
        public static void main(String[] args) {
                String phone = "12345678666";//11位手机号
                System.out.println("手机号:"+phone);
                String lastT = phone.substring(8);//后三位
                System.out.println("后三位:"+lastT);
                String last = phone.substring(10);//最后一位
                String result = "";
                for(int i=0;i<lastT.length();i++) {
                        if(last.equals(lastT.substring(i, i+1))) {
                                result = "是靓号";
                        } else {
                                result = "不是靓号";
                                break;
                        }
                }
                System.out.println(result);
        }
}
回复 使用道具 举报
用后三位匹配一下正则就可以了
boolean b = str.substring(str.length() - 4).matches("(\\d)\\1{2}");
回复 使用道具 举报
LShu 中级黑马 2016-9-8 23:46:02
8#
package com.heima.practise;

import java.util.Scanner;

/**
* 用一个字符串接受手机号码,号码后三位相同为靓号,如何证明号码后三位相同
*
* 分析:
* 1,创建一个键盘录入对象
* 2,定义一个正则规则 判断输入的是否是一个手机号码String regex = "1\\d{10}";
* 3,判断输入的手机号码是否符合规则
*                 符合:截取后3位数字,并将截取后的字符串转成字符数组,判断后3位数是否相同
*                         是:将号码打印到控制台,并提示你的手机号码为靓号
*                         否:将号码打印到控制台,并提示你的手机号码是一般号码
*                 不符合:提示用户输入的手机号码错误,请重写输入
* @author John
*
*/
public class Test00 {
        public static void main(String[] args) {
                //1,创建一个键盘录入对象
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个11位数手机号码:");
                //2,定义一个正则规则 判断输入的是否是一个手机号码String regex = "1\\d{10}";
                String regex = "1\\d{10}";
                /*
                 * 3,判断输入的手机号码是否符合规则
                 *                 符合:截取后3位数字,并将截取后的字符串转成字符数组,判断后3位数是否相同
                 *                         是:将号码打印到控制台,并提示你的手机号码为靓号
                 *                         否:将号码打印到控制台,并提示你的手机号码是一般号码
                 *                 不符合:提示用户输入的手机号码错误,请重写输入
                 */
                while(true) {
                        String number = sc.nextLine();                                                        //将键盘录入的数据存储到变量number中
                        if (number.matches(regex)) {                                                               //判断输入的号码是否是手机号码
                                String line = number.substring(8);                                               //获取手机号码后3位数
                                char[] arr = line.toCharArray();                                               //将截取的字符串转变成字符数组
                                if (arr[0] == arr[1] && arr[1] == arr[2]) {                               //判断手机号码后3位数是否相同
                                        System.out.println("您的手机号码为靓号:" + number);
                                        break;
                                }else {
                                        System.out.println("您的手机号码为一般号码:" + number);
                                        break;
                                }
                        }else {
                                System.out.println("您输入的手机号码错误,请重新输入:");
                        }
                }
        }
}


回复 使用道具 举报
定义一个正则表达式,String regex = "1[34578][0-9]{6}\\d\\1{2}";
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马