一道练习题引申出来的知识点(四) 随机函数 / 字符串处理函数

文接上回
上回说到将姓氏和名字存放在字典中
这次我们要利用随机函数取得字典中的姓氏和名字 再利用字符串函数将姓氏和名字连接起来
好了 废话不多少 开始介绍

首先利用随机数得到姓氏和名字、性别(性别的随机数只用两个)、年龄     上笔记

// 先实例化一个随机数对象 r
Random r = new Random();

// 产生随机数
int num1 = r.Next(N); // 产生 0 ~ N-1 之间的一个随机数
int num2 = r.Next(M,N); // 产生 M ~ N-1 之间的一个随机数

得到随机数以后 在字典中就能根据随机键找对应的姓氏和名字
然后利用字符串处理函数连接姓氏和名字了 ok 上笔记
1.由字符数组 创建字符串 new String(chs) ↑
char[] chs = new char[] { '你', '好', '么', '?' };
String str = new String(chs)
Console.WriteLine(str);

2.重复字符生成字符串 new String('1', 10) ↑
string str = new String('1', 10);
Console.WriteLine(str);

3.将字符串转换为字符数组 ToCharArray ↑
string str = "123";
    char[] chs = str.ToCharArray();
for (int i = 0; i < chs.Length; i++)
    {
          Console.WriteLine(chs[i]);
}

4.字符串的大小写转换 ToUpper / ToLower ↑
 string str = "aBcDEfg";
    string bigStr = str.ToUpper(); // 将字符串全部变为大写
string smallStr = str.ToLower(); // 将字符串全部变为小写

5.去掉首位的字符串 Trim / TrimStart / TrimEnd ↑
string str = "       aBcDEfg***";
string str1 = str.Trim('*',' ');  // 去掉首位的字符串
string str2 = str.Trim(); //默认无参的情况下 是去掉收尾的空格
string str11 = str.TrimStart(); //去掉开头的空格
    string str22 = str.TrimEnd(); //去掉结尾的空格

6.字符串的比较(对字符串的Unicode码进行判断 返回int)Compare ↑
string str1 = "123";
string str2 = "123";
// if(str1>str2) 返回1
// if(str1==str2) 返回0
// if(str1 Console.WriteLine(string.Compare(str1, str2));

7. 判断两个字符串是否相等(对字符串的Unicode码进行判断 返回bool)Equals ↑
string str1 = "123";
string str2 = "123";
// if(str1==str2) 返回True
// if(str1!=str2)  返回True
// 不区分大小写比较两个字符串的大小(调用非静态的方法)
Console.WriteLine(str1.Equals(str2,StringComparison.OrdinalIgnoreCase));

// 不区分大小写比较两个字符串的大小(调用静态的方法)
    string str1 = "1230";
    string str2 = "123";
    Console.WriteLine(string.Equals(str1,str2,StringComparison.OrdinalIgnoreCase));

8.字符串数组的分隔 返回字符串 Join ↑
 string [] strs=new string[]{"梅西","卡卡","郑大世"};
    string str=string.Join("/",strs);
    //返回一个字符型
    Console.WriteLine(str);

9.字符的分隔 返回字符数组 Split ↑
string str="你好,我叫,宋方舟,哈哈.";
string[] newStrs = str.Split(',', '.');
//返回一个字符串型
    for (int i = 0; i < newStrs.Length; i++)
    {
         Console.WriteLine(newStrs[i]);
}
// 分隔非空的字符 (这种方法常用)
     string[] strs = str.Split(new char[]{' ','.'},StringSplitOptions.RemoveEmptyEntries);

 

10.字符串的查找(屏蔽敏感词汇)Contains ↑
 // 也可以查找char字符
string str = "你好 我是中国人";
    if ( str.Contains("中国人") )
    {
         Console.WriteLine("含有敏感词汇");
    }

11. 字符串的替换(和谐只用)  Replace ↑
string str = "他是坏人";
string str1 = str.Replace("坏人", "??");
Console.WriteLine(str1);

12.查找字符串的位置 IndexOf ↑
string str = "2345613";
    // 在字符串中查找指定的字符
    Console.WriteLine(str.IndexOf('1'));
    // 当字符串中没有包含要超找的字符时 输出-1

13.从指定的位置开始找字符的位置 IndexOf ↑
 string str = "2145613";
    // 在字符串第3的位置 查找指定的字符 前面的都忽略不计
    Console.WriteLine(str.IndexOf('1',3));
    // 当字符串中没有包含要超找的字符时 输出-1

14.找到字符串中所有要查找的字符 IndexOf ↑
string str = "012345612345613";
    int index=0;
    int num = 0;

    for (int i = 0; i < str.Length; i++)
    {
          index = str.IndexOf('1', num); // 第一个指定字符的位置找到
          if (index!=-1) // 当找到字符串时
          {
               Console.WriteLine(index);
               num = index+1; // 从找到字符串的下一个位置开始查找
          }
}

15.字符串的截取 Substring ↑
 string str="1234560";
    //从指定字符串截取到结束
    string str1 = str.Substring(4);
Console.WriteLine(str1);

string str="1234560";
//从指定字符串截取指定数量的字符串
    string str1 = str.Substring(1,3);
Console.WriteLine(str1);

16.字符串的插入 Insert ↑
string str = "123456";
// 在字符串的指定位置插入字符串
string str1 = str.Insert(3, "aa");

17.字符串的移除 Remove ↑
 string str = "123456";
    // 将字符串中指定位置到结尾的字符移除
    string str1 = str.Remove(3);

string str = "123456";
    // 将字符串中指定位置到结尾的字符移除 移除指定的数量
string str1 = str.Remove(3,1);

18.判断字符串的开始与结束(判断是不是以规定字符串开始或结束) StartsWith / EndsWith ↑
string str = "123456";
    // 判断字符串是不是以字符串“123”开头 是返回True 否则返回Fasle
Console.WriteLine(str.StartsWith("123"));

string str = "123456";
    // 判断字符串是不是以字符串“56”结尾 是返回True 否则返回Fasle
Console.WriteLine(str.EndsWith("56"));

19.格式化字符串(只要用于Console.WriteLine输出)Format ↑
string name="宋方舟";
    int age=20;
    char gender='男';
    string str = string.Format("大家好我叫{0},今年{1}岁了,我是{2}生", name, age, gender);
    Console.WriteLine(str);

20.字符串赋值为空 Empty ↑
 string str = string.Empty();
string s = null;

21.字符串为空的判断 IsNullOrEmpty ↑
if (string.IsNullOrEmpty(str))
    {
         Console.WriteLine("s为空");
    }

22.字符串的拼接 StringBuilder↑
StringBuilder sb = new StringBuilder(); //创建对象
    sb.Append("123"); //拼接字符串
    Console.WriteLine(sb.ToString());

    //拼接后自动换行
    sb.AppendLine("123");
    Console.WriteLine(sb.ToString());

    //格式化拼接
    sb.AppendFormat("{0},{1},{2}", 1, 2, 3);
            Console.WriteLine(sb.ToString());
23.实现MyIndexOf() 返回字符串中所有字符的位置(原创)  MyIndexOf↑
static void Main(string[] args)
    {
      int charNum = 0;
      string str = "safdsfdsfdsfds";
      try
      {
       string nums = getArrayNumOfChar(str, 'q', out charNum);
       Console.WriteLine("字符{0} 在字符串中一共有{1}个,位置分别是{2}", str, charNum, nums); // 返回结果
      }
      catch (Exception ex)
      {
        Console.WriteLine(ex.Message); // 没有找到就抛出异常
      }
        Console.ReadKey();
    }
// 方法实现原理:遍历字符串 利用 IndexOf(string value,int starIndex); 方法找到位置 将位置ToString后放在string
// 数组中 同时计算找个字符的个数 如果找到字符个数是0 那么就抛出异常没有找到 否则返回字符串 同时去掉两边的空格
    static string getArrayNumOfChar(string strs, char ch, out int charNumber) // 得到字符串中 指定字符的位置
    {
      charNumber = 0; // 存放字符的个数
      int chIndex = 0; // 存放下一个字符从第几个开始查找
      int num = 0; // 存放找到的位置
      string[] chNums = new string[100]; // 存放字符串中所有的字符位置
for (int i = 0, j = 0; i < strs.Length; i++)
        {
          num = strs.IndexOf(ch, chIndex);
        if (num != -1)
        {
         chNums[j++] = num.ToString(); // 将字符的位置放在数组中
         chIndex = num + 1; // 从找到位置的下一个位置开始找
         charNumber++; // 计算字符数量
        }
      }
      if (charNumber==0) // 检测有没有要查找的字符串
      {
        throw new Exception(string.Format("字符串中没有要查找的字符{0}", ch)); // 没有找到 就抛出异常
      }           
return string.Join("    ", chNums).Trim(); // 返回字符串 并去掉两边的空格
     }

24.Char和string之间的转换  ToCharArray ↑
string str="abc";
char[] ch = str.ToCharArray();

 

下一篇文章我会介绍 常用的sql语句 以及相关概念

(作者注释:由于我的笔记是.doc格式的 所有的标题都有超链接以及标题颜色 如果直接复制过来的话会有格式不支持的情况 为了统一 我在全部转换成了txt  所以会没有颜色 希望大家见谅)

 

 

你可能感兴趣的:(.net)