Bootstrap

C# 第三次作业 0703

 1、字符串的常见方法练习

Format 方法通常用于字符串的格式化,使得输出更加灵活和可读。

代码示例:

string name = "贾玲";
int age = 42;
string ExampleFormat = String.Format("Name: {0}, Age: {1}", name, age);
Console.WriteLine(ExampleFormat);

结果:

IsNullOrEmpty  & IsNullOrWhiteSpace 

IsNullOrEmpty :经常通过组合使用string.IsNullOrEmpty静态方法来实现的,该方法用于检查一个字符串是否为null或者空字符串("")。

IsNullOrWhiteSpace :是 string 类的一个静态方法,用于检查指定的字符串是否为 null、空(""),或者仅由空白字符组成(如空格、制表符、换行符等)。结果返回True或False

IsNullOrEmpty  代码示例:

string ExampleNUll  = null;   // 或者string ExampleNUll = "";

if (!string.IsNullOrEmpty(ExampleNUll))
{
    Console.WriteLine("有效数据。");
    // 这里执行只有在ExampleNUll非null且非空时才需要的操作  
}
else
{
    Console.WriteLine("没有输入数据。");
    // 这里处理ExampleNUll为空或null的情况  
}

结果:

IsNullOrWhiteSpace 代码示例:

string ExampleINWS1 = null;
string ExampleINWS2 = "";
string ExampleINWS3 = "   "; // 只包含空格  
string ExampleINWS4 = "Hello, World!";

Console.WriteLine(string.IsNullOrWhiteSpace(ExampleINWS1)); 
Console.WriteLine(string.IsNullOrWhiteSpace(ExampleINWS2)); 
Console.WriteLine(string.IsNullOrWhiteSpace(ExampleINWS3)); 
Console.WriteLine(string.IsNullOrWhiteSpace(ExampleINWS4)); 

结果:

Equals :用于比较两个对象是否相等。

 代码示例:

string ExampleEquals1 = "46867164";
string ExampleEquals2 = "46464656";
Console.WriteLine(ExampleEquals1.Equals(ExampleEquals2));

结果:

Contains:用于检查字符串中是否包含指定的子字符串。

 代码示例:

string ExampleContains = "Example, Contains!";
Console.WriteLine(ExampleContains.Contains("W"));

结果:

Length:用于获取某个数据结构(如字符串、数组、某些集合等)的长度或元素数量。

代码示例:

string ExampleLength = "Example, Length!";
Console.WriteLine(ExampleLength.Length);

结果:

Substring:用于从字符串中提取子字符串。

代码示例:

string ExampleSubstring = "Example, Substring!";
Console.WriteLine(ExampleSubstring.Substring(0));
//提取子字符串直到原字符串的末尾
Console.WriteLine(ExampleSubstring.Substring(0,ExampleSubstring.Length));
//从0开始,提取长度为length的子字符串

结果:

IndexOf & LastIndexOf

IndexOf:用于在字符串、数组或其他集合中搜索指定的元素或子字符串,并返回其第一次出现的索引位置。如果未找到指定的元素或子字符串,则返回-1。

LastIndexOf:在字符串和数组中都有应用,主要用于搜索指定元素或子字符串最后一次出现的索引位置。

IndexOf 代码示例:

string ExampleIndexOf = "Example, IndexOf!";
Console.WriteLine(ExampleIndexOf.IndexOf("e"));

IndexOf 结果:

LastIndexOf 代码示例:

string ExampleLastIndexOf = "Example, LastIndexOf!";
Console.WriteLine(ExampleLastIndexOf.LastIndexOf("e"));

LastIndexOf 结果:

StartsWith & EndsWith

StartsWith:用于检查字符串实例是否以指定的子字符串开头。如果字符串以指定的子字符串开头,则StartsWith方法返回true;否则,返回false

EndsWith:用于检查字符串实例是否以指定的子字符串结尾。如果字符串以指定的子字符串结尾,则EndsWith方法返回true;否则,返回false

StartsWith 代码示例:

string ExampleStartsWith = "Example, StartsWith!";
Console.WriteLine(ExampleStartsWith.StartsWith("E"));

StartsWith 结果:

EndsWith 代码示例:

string ExampleEndsWith = "Example, EndsWith  ! ";
Console.WriteLine(ExampleEndsWith.EndsWith(" "));

EndsWith 结果:

Remove:通常用于从字符串中移除指定数量的字符,从指定的位置开始。

代码示例:

string ExampleRemove = "Example, Remove  ! ";
Console.WriteLine(ExampleRemove.Remove(0,8));

结果:

Reverse :通常用于颠倒数组、集合或者字符串中的元素顺序。

代码示例:

string str = "我的骄傲  ";
Console.WriteLine(str.Reverse().ToArray());

结果:

Trim :是 string 类的一个成员,它用于移除字符串开头和结尾处的所有空白字符。空白字符包括空格、制表符(\t)、换行符(\n)等。

代码示例:

string ExampleTrim = "  Example, Trim!   ";
Console.WriteLine("--"+ExampleTrim.Trim()+"--");

结果:

string ExampleToLower = "Example, ToLower !";
Console.WriteLine(ExampleToLower.ToLower());

ToLower  &  ToUpper

ToLower :用于将字符串中的所有字符转换为小写形式。

ToUpper :用于将字符串中的所有字符转换为大写形式。

ToLower  代码示例:

string ExampleToLower = "Example, ToLower !";
Console.WriteLine(ExampleToLower.ToLower());

ToLower  结果:

ToUpper 代码示例:

string ExampleToUpper = "Example, ToUpper!";
Console.WriteLine(ExampleToUpper.ToUpper());

ToUpper 结果:

Concat :用于将两个或多个字符串(或集合中的元素)连接起来,形成一个新的字符串。

代码示例:

string ExampleConcat1 = "Example ";
string ExampleConcat2 = "Concat!";
Console.WriteLine(String.Concat(ExampleConcat1,ExampleConcat2));

结果:

Join :方法的作用是将一个字符串数组的所有元素连接成一个单一的字符串,元素之间可以插入指定的分隔符。

代码示例:

string[] ExampleJoin = { "Example", "Join", "!" };
Console.WriteLine(String.Join(" ", ExampleJoin));

结果:

Split :方法是一个用于将字符串分割成子字符串数组的方法。

代码示例:

string ExampleSplit = "Example,Split,!";
string[] ExampleSplit2 = ExampleSplit.Split(",");
foreach (string split in ExampleSplit2)
{
    Console.WriteLine(split);
}

结果:

2、实现身份证的解析;

代码实现:

string ID = "789463684948318763";
if (string.IsNullOrEmpty(ID) || ID.Length != 18)
{
    Console.WriteLine("身份证号码输入错误");
}
else
{
    Console.WriteLine("身份证号码为:"+ID);
}

Console.WriteLine("户籍:"+ID.Substring(0, 6));

string BirthYear = ID.Substring(6, 4);
string BirthMonth = ID.Substring(10, 2);
string BirthDay = ID.Substring(12, 2);
Console.WriteLine(string.Format("出生日期:{0}年{1}月{2}日", BirthYear, BirthMonth, BirthDay));

string IdGender = ID.Substring(16, 1);
int IdNumber = int.Parse(IdGender);
if (IdNumber % 2 == 0)
{
    Console.WriteLine("性别为: 女 ");
}
else
{
    Console.WriteLine("性别为: 男 ");
}

Console.WriteLine("校验码:"+ID.Substring(ID.Length - 1));

结果:

3、遍历磁盘,列出目录和文件、统计文件个数,统计不同类型(后缀)的文件个数。

代码实现:

     class TraverseDisk
    {
        private int diskSum = 0;
        private Dictionary<string, int> dic= new Dictionary<string, int>();
        public void TraverseDirectory(string path)
        {
            
                // 获取目录下的所有文件和目录  
                string[] directories = Directory.GetDirectories(path);
                string[] files = Directory.GetFiles(path);

                // 遍历文件  
                foreach (string file in files)
                {
                    FileInfo fileInfo = new FileInfo(file);
                    Console.WriteLine(fileInfo.Name);
                    diskSum +=1 ;
                    // 如果字典中没有该扩展名,则添加并初始化为1;否则,数量加1  
                    if (dic.ContainsKey(fileInfo.Extension))
                    {
                        dic[fileInfo.Extension]++;
                    }
                    else
                    {
                        dic.Add(fileInfo.Extension, 1);
                    }

                   
                }

                // 递归遍历子目录  
                foreach (string dir in directories)
                {
                    Console.WriteLine(dir);
                    TraverseDirectory(dir);
                }
            }
        public void TraverseFile()
        {
            Console.WriteLine(diskSum);
            foreach (var dir in dic)
            {
                Console.WriteLine(dir.Key+dir.Value);
            }
        }
    }
}
TraverseDisk traverseDisk = new TraverseDisk();
traverseDisk.TraverseDirectory(@"D:\list\PYTHON\db");
traverseDisk.TraverseFile();

结果:

;