目录
1.2IsNullOrEmpty (判断是否为null或空(""))和 IsNullOrWhiteSpace(判断是否为null或空("")或" ")
1.7IndexOf(指定内容第一次出现的位置)和LastIndexOf(指定内容最后一次出现的位置)
1.8StartsWith和 EndsWith(判断是否以某个元素开头或结尾)
1.13ToUpper(变成大写)和ToLower(变成小写)
1.15Split(将字符串中的内容按照分隔符分开,结果保存到数组中)
3、遍历磁盘,列出目录和文件、统计文件个数,统计不同类型(后缀)的文件个数。
1、字符串的常见方法
1.1Format(格式化)
String str = "Hello World"; String name = "陈晨"; int age = 18; String message = "大家好,我是{0},我今年{1}岁"; //有几个占位符,就需要有几个参数,占位符顺序也必须一致 Console.WriteLine(string.Format(message,name,age));
1.2IsNullOrEmpty (判断是否为null或空(""))和 IsNullOrWhiteSpace(判断是否为null或空("")或" ")
string username = "chenchen"; string password = "123456"; if (string.IsNullOrEmpty(username)) { throw new ArgumentNullException("username is null"); } else { if (string.IsNullOrEmpty(password)) { throw new ArgumentNullException("password is null"); } } Console.WriteLine("登陆成功!");
1.3Equals(判断两个对象是否相等)
string str = "Hello"; //C#大小写敏感,忽略大小写 //if (str.ToLower() == "hello") if (str.ToLower().Equals("hello")) { Console.WriteLine("相等"); } else { Console.WriteLine("不相等"); }
1.4Contains(判断字符串中是否包含某个字符串)
string str = "Hello World."; if (str.Contains("x")) { Console.WriteLine("包含"); } else { Console.WriteLine("不包含"); }
1.5Length(计算字符串的长度)
string str = "Hello World.你好"; Console.WriteLine(str.Length);
1.6Substring(截取字符串)
string str = "Hello World.你好"; Console.WriteLine(str.Substring(0)); //从第0个字符开始截取,截取到最后:Hello Console.WriteLine(str.Substring(6,5)); //从第0个字符开始截取5个字符:World Console.WriteLine(str.Substring(str.Length-2)); //截取组后两个字符:你好
1.7IndexOf(指定内容第一次出现的位置)和LastIndexOf(指定内容最后一次出现的位置)
//为什么斜杠要写两个,第一个斜杠时语言转义字符,第二个斜杠才是真正的斜杠字符 string path = "D:\\AADJ\\app\\Microsoft Visual Studio\\2022\\repos\\DJConsoleProject\\课堂笔记.docx"; Console.WriteLine(path); Console.WriteLine(path.IndexOf(":")); //输出冒号第一次出现的位置,从0开始计数 Console.WriteLine(path.LastIndexOf(":")); //输出冒号最后一次出现的位置,从0开始计数
1.8StartsWith和 EndsWith(判断是否以某个元素开头或结尾)
path = "D:\\AADJ\\app\\Microsoft Visual Studio\\2022\\repos\\DJConsoleProject\\课堂笔记.docx"; if (path.StartsWith("D:\\AADJ")) //判断是否以D:\\AADJ开头,如果是,返回true,若不是,返回false { Console.WriteLine("属于某个项目的文件"); } if (path.EndsWith(".docx")) //判断是否以.docx结尾,如果是,返回true,若不是,返回false { Console.WriteLine("word文档"); }else if (path.EndsWith(".jpg")) { Console.WriteLine("图片文档"); }else if (path.EndsWith(".mp4")) { Console.WriteLine("电影文档"); }
1.9Remove(去掉指定元素)
string path = "D:\\AADJ\\app\\Microsoft Visual Studio\\2022\\repos\\DJConsoleProject\\课堂笔记.docx"; Console.WriteLine(path.Remove(path.LastIndexOf("."), 1)); //去掉.
1.10Revserse(将指定字符串翻转)
string str = "我的骄傲"; Console.WriteLine(str.Reverse().ToArray()); //将指定字符串翻转,输出为“傲娇的我”
1.11Trim(去掉字符串左右两边的空格)
string str = " 我的 骄傲 "; Console.WriteLine("--" + str.Trim() + "--"); //去掉字符串左右两边的空格
1.13ToUpper(变成大写)和ToLower(变成小写)
string str = "Hello World"; Console.WriteLine(str.ToLower()); //hello world Console.WriteLine(str.ToUpper()); //HELLO WORLD
1.12Replace(把一个字符串替换为另一个字符串)
string str = " 我的 骄傲 "; Console.WriteLine(str.Replace(" ","")); //将空格替换为"",相当于把空格去掉 Console.WriteLine(str.Replace(' ', '-')); //将空格替换为”-“
1.13Concat(将两个字符串连接到一起)
string str = "Hello World"; string first = str.Substring(0, 1);//首字母 //大驼峰:HelloWorld //Concat相当于+,将两个字符串连接到一起 Console.WriteLine(first.ToUpper()+str.Substring(1)); Console.WriteLine(string.Concat(first.ToUpper(), str.Substring(1))); //小驼峰:helloWorld Console.WriteLine(first.ToLower()+str.Substring(1)); Console.WriteLine(string.Concat(first.ToLower(),str.Substring(1)));
1.14Join(将数组中的内容用分隔符连接起来)
string[] names = { "刘备", "关羽", "张飞" }; //将数组中的内容用"|"连接起来并输出 Console.WriteLine(string.Join("|",names)); //输出为"刘备|关羽|张飞"
1.15Split(将字符串中的内容按照分隔符分开,结果保存到数组中)
string citystr = "北京,上海,深圳,广州,杭州"; //将字符串中的内容按照","分开,结果保存到数组中 string[] citys = citystr.Split(','); foreach (string s in citys) { Console.WriteLine(s); }
2.实现身份证的解析
身份证中包含很多信息,本例主要运用Substring函数来截取身份证中的信息,如出生日期,性别等
public class IDCard { public string Parse(string idCardNumber) { if (idCardNumber.Length != 18) { throw new ArgumentException("身份证号码必须为18位"); } // 获取出生日期, //年:身份证从index为6开始,向后截取4个字符 //月:身份证从index为10开始,向后截取2个字符 //日:身份证从index为12开始,向后截取2个字符 string birthDate = idCardNumber.Substring(6, 4) + "-" + idCardNumber.Substring(10, 2) + "-" + idCardNumber.Substring(12, 2); // 获取性别,身份证号的index为16的数,如果是双数,则为女,单数为男 int genderCode; bool isParseGenderCodeSuccess = int.TryParse(idCardNumber.Substring(16, 1), out genderCode); string gender = isParseGenderCodeSuccess && genderCode % 2 == 0 ? "女" : "男"; return $"出生日期:{birthDate},性别:{gender}"; } } // 使用示例 IDCard idCard = new IDCard(); string result = idCard.Parse("123456199001011234"); Console.WriteLine(result); // 输出:出生日期:1990-01-01,性别:男
标签:03,2024.07,Console,string,C#,Substring,str,WriteLine,字符串 From: https://blog.csdn.net/qq_62830772/article/details/1401656883、遍历磁盘,列出目录和文件、统计文件个数,统计不同类型(后缀)的文件个数。
在这个例子中,我们首先定义了一个字典
fileExtensions
来存储每种文件类型的数量。然后,我们调用TraverseDirectory
方法来遍历指定的目录及其子目录。对于每个找到的文件,我们获取其扩展名,并在fileExtensions
字典中更新计数。最后,我们在控制台上打印出文件总数和每种文件类型的数量。注意:这个程序可能会尝试访问你没有权限访问的目录或文件,因此在实际运行时可能会抛出异常。我们通过try-catch语句捕获这些异常,并在控制台上打印出错误信息。
using System; using System.Collections.Generic; using System.IO; class Program { static void Main() { string path = @"D:"; // 扫描路径 //定义一个字典fileExtensions来存储每种文件类型的数量 Dictionary<string, int> fileExtensions = new Dictionary<string, int>(); //调用TraverseDirectory方法来遍历指定的目录及其子目录,并将其放在fileExtensions中 TraverseDirectory(path, fileExtensions); //统计磁盘中所有文件的数量 Console.WriteLine("文件总数: " + Directory.GetFiles(path, "*", SearchOption.AllDirectories).Length); foreach (var extension in fileExtensions) { Console.WriteLine($"后缀为 {extension.Key} 的文件数量: {extension.Value}"); } } static void TraverseDirectory(string directoryPath, Dictionary<string, int> fileExtensions) { try { foreach (var directory in Directory.GetDirectories(directoryPath)) { TraverseDirectory(directory, fileExtensions); } foreach (var filePath in Directory.GetFiles(directoryPath)) { string extension = Path.GetExtension(filePath); if (!string.IsNullOrEmpty(extension)) { if (fileExtensions.ContainsKey(extension)) { fileExtensions[extension]++; } else { fileExtensions.Add(extension, 1); } } } } catch (Exception ex) { Console.WriteLine($"无法访问目录 {directoryPath}: {ex.Message}"); } } }