求一组手机号码中有几个不同号段(List的妙用)

本文介绍了一种使用Java实现的方法,旨在从一组手机号码中快速找出不同号段的数量。通过利用List集合并采用一次循环遍历的方式,有效地避免了重复计数的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下午犯困的时候,小组长给了个任务:叫我求一组手机号码中有几个不同号段。

刚开始我是用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);
	}

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

macrobn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值