Java截取手机号后六位

在日常的开发中,我们经常遇到需要处理手机号码的情况。有时候我们只需要截取手机号的后六位作为标识,例如用于验证码的发送。本文将介绍如何使用Java语言截取手机号的后六位,并提供代码示例。

获取手机号后六位的方法

要截取手机号的后六位,我们需要先获得完整的手机号,然后使用字符串的处理方法截取后六位。Java提供了多种处理字符串的方法,下面将介绍两种常用的方法。

方法一:使用substring方法

Java的String类中提供了substring方法,可以根据起始位置和结束位置截取字符串的一部分。我们可以使用substring方法截取手机号的后六位。

下面是使用substring方法截取手机号后六位的示例代码:

public class PhoneNumberUtils {
    public static String getLastSixDigits(String phoneNumber) {
        if (phoneNumber.length() >= 6) {
            return phoneNumber.substring(phoneNumber.length() - 6);
        } else {
            // 处理手机号长度小于6位的情况
            return phoneNumber;
        }
    }
}

在上面的代码中,getLastSixDigits方法接收一个手机号作为参数,然后判断手机号的长度是否大于等于6位。如果是,则使用substring方法从末尾开始截取后六位;如果不是,则直接返回原手机号。这样就可以确保截取后的字符串始终是后六位。

方法二:使用正则表达式

除了使用substring方法外,我们还可以使用正则表达式来截取手机号的后六位。正则表达式是一种强大的文本匹配工具,它可以根据特定的规则来匹配字符串的一部分。

下面是使用正则表达式截取手机号后六位的示例代码:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class PhoneNumberUtils {
    public static String getLastSixDigits(String phoneNumber) {
        Pattern pattern = Pattern.compile("\\d{6}$");
        Matcher matcher = pattern.matcher(phoneNumber);
        if (matcher.find()) {
            return matcher.group();
        } else {
            // 处理手机号格式不正确或长度小于6位的情况
            return phoneNumber;
        }
    }
}

在上面的代码中,我们使用了正则表达式\d{6}$来匹配手机号的后六位。\d表示匹配一个数字,{6}表示匹配前面的元素6次,$表示匹配输入的结尾位置。如果匹配成功,则返回匹配到的字符串;如果匹配失败,则返回原手机号。

示例代码

下面是一个完整的示例代码,展示了如何使用上述方法截取手机号的后六位:

public class Main {
    public static void main(String[] args) {
        String phoneNumber = "13812345678";
        String lastSixDigits = PhoneNumberUtils.getLastSixDigits(phoneNumber);
        System.out.println("手机号后六位:" + lastSixDigits);
    }
}

public class PhoneNumberUtils {
    public static String getLastSixDigits(String phoneNumber) {
        // 使用substring方法
        if (phoneNumber.length() >= 6) {
            return phoneNumber.substring(phoneNumber.length() - 6);
        } else {
            return phoneNumber;
        }
        
        // 使用正则表达式
        // Pattern pattern = Pattern.compile("\\d{6}$");
        // Matcher matcher = pattern.matcher(phoneNumber);
        // if (matcher.find()) {
        //     return matcher.group();
        // } else {
        //     return phoneNumber;
        // }
    }
}

在上面的示例代码中,我们首先定义了一个手机号13812345678,然后调用PhoneNumberUtils.getLastSixDigits方法来获取手机号的后六位,最后打印结果。

测试代码

为了验证我们的截取方法是否正确,我们可以编写一些测试用例来进行测试。下面是一个简单的测试代码示例:

public class PhoneNumberUtilsTest {
    @Test
    public void testGetLastSixDigits() {
        String phoneNumber1 = "13812345678";
        String phoneNumber2 = "138";
        String phoneNumber3 = "138123";
        String phoneNumber4 = "1381234";
        String phoneNumber5 = "13812345";
        String phoneNumber6 = "138123456";
        
        assertEquals("345678", PhoneNumberUtils.getLastSixDigits(phoneNumber1));
        assertEquals("138", PhoneNumber