c# 在命令行中输入任意10个字符串,根据字符串类型将输入的数据放入到不同数组中,最后将数组进行排序
问题描述:
1、输入的字符串,可以是手机、邮箱、身份证等
2、只将手机、邮箱的字符串筛选出来放到两个数组中,其余的放入yi'ge'shu'zu'zhon
3、数组按照升序排序,比如数组[6,3,8,2,4],按照升序排序后结果为[2,3,4,6,8]
答
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace Q712950
{
class Program
{
static string Classify(string s)
{
if (Regex.IsMatch(s, "1[35678]\\d{9}")) return "手机";
if (Regex.IsMatch(s, @"[a-zA-Z\d_\-]+@[a-zA-Z\d_\-]+\.[a-zA-Z\d_\-]+")) return "邮箱";
return "其它";
}
static void Main(string[] args)
{
string[] arr = new string[10];
for (int i = 0; i < arr.Length; i++)
arr[i] = Console.ReadLine();
var query = arr.GroupBy(Classify).Select(x => new { key = x.Key, value = x.OrderBy(y => y) });
foreach (var item in query)
{
Console.WriteLine(item.key + ":");
Console.WriteLine("\t" + string.Join(", ", item.value));
}
}
}
}
如果问题得到解决,请点我回答左上角的采纳,谢谢