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