下午犯困的时候,小组长给了个任务:叫我求一组手机号码中有几个不同号段。
刚开始我是用String数组,傻傻的写了两层for循环。
后面组长看完,反问我一句:为什么要两层循环呢,用list了,怎么就不再变通一下呢,直接一层循环搞定。
我又思索了一会,终于想明白了组长的用心良苦啊。小小的转换下思维方式,咦,list这么好用
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 求一组手机号码中有几个不同号段
* @author hong
* @date 2013-10-30
*/
public class CalNum {
/**
* 给定一个手机号码的List,求有几个不同号段
* @param n 位数
* @param strList
* @return
*/
public int Cal2(int n , List<String> strList){
List<String> hasList=new ArrayList<String>();//存储已经有相同的号段
for(String str : strList){
if(!hasList.contains(str.substring(0,n))){//如果已存的号段list里没有,则存入
hasList.add(str.substring(0,n));
}
}
return hasList.size();
}
/**
* @param args
*/
public static void main(String[] args) {
String str = "18152663203,18052662174,18083718440,18052663334," +
"18052663293,18052663273,18052663727,18052661447,18083719244,18052663795";
String[] array = str.split(",");
List<String> list=Arrays.asList(array);//转换成list
CalNum calNum = new CalNum();
calNum.Cal2(8, list);
}
}