package 字符串练习; public class 手机号屏蔽 { public static void main(String[] args) { /* 需求: 已经有一个给定的手机号,要把里面第3位到第7位数字改成* */ //思路: 我想到的有两种方法可解 //第一种: 把原字符串先转换成char数组,然后用for循环和if来重新拼接一个字符串 //第二种: 可以把1到3位的数字和7到最后的数字截取出来, // 把这两个先拼接,然后得到一个临时长度,在计算我们需要屏蔽多少位的号码 // 最后用一个for循环和if语句就可以构造成目标字符串了 //显然第二个会更好一点,因为这样就可以让长度变成动态的,适用范围更广 //接下来我写第二种方法 String phone_number = "123456789"; //手机号码定义完毕 String number_1_3 = phone_number.substring(0,3); String number_7_end = phone_number.substring(7); //1到3和7到最后都截取完毕 String begin_end = number_1_3 + number_7_end; //头尾结合完毕 int length = phone_number.length() - begin_end.length(); //屏蔽号码位数完毕 String result = ""; for (int i = 0; i < length; i++) { result += "*"; } result = number_1_3 + result + number_7_end; System.out.println(result); } }