黑马程序员技术交流社区

标题: 题目求解!大神 [打印本页]

作者: XuhEii    时间: 2016-9-8 22:21
标题: 题目求解!大神
用一个字符串接受手机号码,号码后三位相同为靓号,如何证明号码后三位相同
作者: HelloSir    时间: 2016-9-8 22:32
拆分后判断,在string对象中应该提供了类似的方法,你去api文档中看下。
作者: 不羁的码农    时间: 2016-9-8 22:38
截取后三位,转为字符数组,再比较
作者: &天马星空ぁ    时间: 2016-9-8 22:42
把字符串转换为数组,比较最后3位即可
作者: 我本欲善良    时间: 2016-9-8 22:42
你可以通过正则表达式进行判断接收,String regex = "1[3578][0-9]{6}[0-9]\\1{2}"

作者: xh_javaee    时间: 2016-9-8 23:04

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);
        }
}

作者: 13411939415    时间: 2016-9-8 23:11
用后三位匹配一下正则就可以了
boolean b = str.substring(str.length() - 4).matches("(\\d)\\1{2}");

作者: LShu    时间: 2016-9-8 23:46
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("您输入的手机号码错误,请重新输入:");
                        }
                }
        }
}



作者: cjc147    时间: 2016-9-9 00:05
定义一个正则表达式,String regex = "1[34578][0-9]{6}\\d\\1{2}";




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2