C#二维数组及字符串操作

二维数组
int r = arr.Rank;//数组的维数
Console.WriteLine("长度{0}",arr.Length);//总长度
int e=arr.GetLength(0);//获取第一维的长度
Console.WriteLine("第一维的长度{0}",e);//2
arr.GetUpperBound(0);//获取第一维的最大下标
arr.GetLowerBound(0);//获取第一维的最小下标




 int[,] arr=new int[2,3];
 int[] arr3=new int[2]{1,2};//元素个数要与定义的长度一致
            
 {第一行,第二行}
 第一行指定完成后,后面的每一行的元素的个数要与第一行的元素的个数一致
 int[,] arr2 = { {1,2,3},{1,2,3}};


锯齿数组***************************************
数组中的数组
int[]看作为一个整体,arr里面放的每一个元素就是一个Int[] 类型
int[][]arr= new int[3][];




字符串格式化方法,返回一个格式化后的结果
string sum= string.Format("{0}+{1}={2}",1,2,1+2);


字符串操作的方法
bool b= str.StartsWith("马克思");//判断是不是以某字符串开头
bool bl= str.EndsWith("二货青年!");//判断是不是以某字符串结尾
int a= str.IndexOf("二货");//判断字符在字符串中的位置,若出现了多次则返回第一个索引
int w = str.LastIndexOf("二货");//判断字符在字符串中最后出现的索引


//字符串转大小写
string str2 = str.ToUpper();//转大写
str.ToLower();//转化小写


string s = " hello  ";
s.Trim();//去掉前后的空格
s.TrimStart('')//去掉前面的空格
    s.TrimEnd();//去掉后面的指定项
s.Trim('指定内容');//去掉指定内容


string  StringBulider     String  区别
String是字符串类,微软定义好的字符串类型
string是C#中的一个关键字,实际上定义一个string时就是去穿件了一个String的对象
StringBulider也是微软定义好的字符串操作的类,能做字符串的大部分操作,
StringBulider在做字符串操作时,自身改变,而string在做操作时一般返回一个新的字符串
每创建一个新的字符串时,都需要一申请新的内存,在字符串造作比较频繁时string的执行效率比较低
在字符串操作不是很频繁时,使用string相对来说好些,

string的方法要全面些,相对StringBulider所分配的内存要少得多


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //二维数组
           // int[,] arr=new int[2,3];
            int[] arr3=new int[2]{1,2};//元素个数要与定义的长度一致
            
            //{第一行,第二行}
           //第一行指定完成后,后面的每一行的元素的个数要与第一行的元素的个数一致
           // int[,] arr2 = { {1,2,3},{1,2,3}};
           //1,2,3
           //1,2,3
           // for (int i = 0; i < arr.GetLength(0); i++)
           // {
           //     for (int j = 0; j < arr.GetLength(1); j++)
           //     {
           //         Console.Write("{0}\t",arr2[i,j]);
           //     }
           //     Console.WriteLine();
           // }


            //三维数组
            //int[, ,] arr = new int[2, 3, 4];


            //锯齿数组***************************************
            //数组中的数组
            //int[]看作为一个整体,arr里面放的每一个元素就是一个Int[] 类型
            //int[][]arr= new int[3][];
            //int[]a1={1,2,3};
            //arr[0] = a1;
            //int[] a2 = {2,3,4 };
            //arr[1] = a2;
            //int[] a3 = { 1,2,3,4,5};
            //arr[2]=a3;
            //foreach (int[] item in arr)
            //{
            //    foreach (int it in item)
            //    {
            //        Console.WriteLine("{0}\t",it);
            //    }
            //}
            //for (int i = 0; i < arr.Length; i++)
            //{
            //    for (int j = 0; j < arr[i].Length; j++)
            //    {
            //        Console.Write("{0}\t",arr[i][j]);
            //    }
            //    Console.WriteLine();
            //}


            //1 
            //1 1
            //1 2 1
            //1 3 3 1
            //1 4 6 4 1
            //1 51010 5 1
            //杨辉三角
           // int n = 5;
           //第一列与对角线是1,其他的数组是由正上方的元素与它左边的元素相加得到的
            //1.定义一个5乘5的数组
            //2.给这个数组的第一列与对角线的元素赋1
            //3.给其他元素求值
            //int[,] arr = new int[n,n];
            //for (int i = 0; i             //{
            //    arr[i, 0] = 1;
            //    arr[i, i] = 1;


            //}
            //for (int i = 2; i < n; i++)
            //{
            //    for (int j = 1; j <=i-1 ; j++)
            //    {
            //        arr[i, j] = arr[i - 1, j] + arr[i - 1, j - 1];
            //    }
            //}


            //for (int i = 0; i < n; i++)
            //{
            //    for (int j = 0; j <= i; j++)
            //    {
            //        Console.Write("{0}\t",arr[i,j]);
            //    }
            //    Console.WriteLine();
            //}


            //*********字符串类型操作************
            //格式化
            //int i = 1000;
            // string s= i.ToString("e");
            //Console.WriteLine(s);//C货币   X 十六进制
            //Console.WriteLine(i.ToString("c"));


            //字符串格式化方法,返回一个格式化后的结果
           //string sum= string.Format("{0}+{1}={2}",1,2,1+2);
           //Console.WriteLine(sum);




            //字符串操作的方法
           // string str = "马克思:杨坤是个二货青年!二货";
           // bool b= str.StartsWith("马克思");//判断是不是以某字符串开头
           // if (b)
           // {
           //     Console.WriteLine("真是个二货青年!");
           // }
           // bool bl= str.EndsWith("二货青年!");//判断是不是以某字符串结尾
           // if (bl)
           // {
           //     Console.WriteLine("二货青年!");
           // }
           //bool b1= str.Contains("杨坤");//包含


           //int a= str.IndexOf("二货");//判断字符在字符串中的位置,若出现了多次则返回第一个索引
           //Console.WriteLine(a);


           //int w = str.LastIndexOf("二货");//判断字符在字符串中最后出现的索引


           // //字符串转大小写
           //string str2 = str.ToUpper();//转大写
           //str.ToLower();//转化小写


            //string s = " hello  ";
            //s.Trim();//去掉前后的空格
            //s.TrimStart('')//去掉前面的空格
            //    s.TrimEnd();//去掉后面的指定项
            //s.Trim('指定内容');//去掉指定内容、


            //string s = "123.5";
            //string s2 = s.PadLeft(10);
            //在字符串左边填充空格,让字符串的长度达到10
            //s2 = s.PadRight(10, '*');




            //练习:输入一个图片路径,判断这个路径是不是为图片
            //string s = Console.ReadLine().ToLower().Trim();


            //string[] type = { ".jpg","png"};


            //bool b = false;
            //foreach (string item in type)
            //{
            //    b=  s.EndsWith(item);
            //    if (b)
            //    {
                    
                   
            //        break;
            //    }


              
            //}
            //if (b)
            //{
            //    Console.WriteLine("是图片");
            //}
            //else
            //{
            //    Console.WriteLine("不是图片");
            //}
           
            //以字符串做数据库************
            //string str = "1001\t黄环\t男\t22\n";
            //str += "1002\t杨坤\t男\t20\n";
            //str += "1003\t肖君\t女\t20\n";
            //Console.WriteLine("*********学生管理系统********");
            //Console.Write(str);
            //Console.WriteLine("*****************************");
            //Console.WriteLine("1 增加  2 删除  3修改  ");


            #region  删除
            //Console.WriteLine("请输入删除学生的学号");
            //string id = Console.ReadLine();
            //int index = str.IndexOf(id);
            //if (index == -1)
            //{
            //    Console.WriteLine("不存在这个学生");
            //}
            //else
            //{
            //   int endindex= str.IndexOf("\n", index);
            //   str= str.Remove(index,endindex+1-index);
            //  Console.WriteLine(str);


            //}
            #endregion


            #region 新增
          
            //Console.WriteLine("请输入学号:");
            //string stuNum = Console.ReadLine();
            //while (str.Contains(stuNum))
            //{
            //    Console.WriteLine("学号重复,请重新输入");
            //    stuNum = Console.ReadLine();
            //}


            //Console.WriteLine("请输入姓名:");
            //string name = Console.ReadLine();
            //Console.WriteLine("请输入性别:");
            //string sex = Console.ReadLine();
            //Console.WriteLine("请输入年龄:");
            //string age= Console.ReadLine();


            //string stuMes =string.Format("{0}\t{1}\t{2}\t{3}\n", stuNum , name , sex , age);
            //str += stuMes;
            //Console.WriteLine("*********学生管理系统********");
            //Console.Write(str);
            //Console.WriteLine("*****************************");
            
            #endregion 


            #region 修改
            //Console.WriteLine("要修改人的学号:");
            //string id = Console.ReadLine()+"\t";
            //if (str.Contains(id))
            //{
            //    //修改操作
            //    //1取出要修改的数据
            //    int index = str.IndexOf(id);
            //    int endindex = str.IndexOf("\n", index);
            //     string stu= str.Substring(index, endindex - index+1);
            //    Console.WriteLine("要修改的人的信息:");
            //    Console.WriteLine(stu);
            //    //2输入新的数据
            //    Console.WriteLine("请输入姓名:");
            //    string name= Console.ReadLine();
            //    Console.WriteLine("请输入性别:");
            //    string sex = Console.ReadLine();
            //    Console.WriteLine("请输入年龄:");
            //    string age = Console.ReadLine();
            //    string stuNew = string.Format("{0}{1}\t{2}\t{3}\n", id, name,sex, age);
            //    //3用新的数据替换旧的数据
            //    str.Replace(str, stuNew);
            //}
            //else
            //{
            //    Console.WriteLine("该学生不存在!");
            //}
            #endregion


            //string str="1,2,3,4,5,6,8";
            //string [] arr= str.Split(',');
            //foreach (string item in arr)
            //{
            //    Console.WriteLine(item);
            //}




            //练习
            //输入多个数字,以逗号或空格隔开
            //计算出这几个数的和
            //Console.WriteLine("输入多个数字,以逗号或空格隔开");
            //string str = Console.ReadLine();
            
            //string[] arr=str.Split(' ',',');
            //int sum=0;


            //for (int i = 0; i < arr.Length; i++)
            //{
            //    int item = int.Parse(arr[i]);
            //    sum +=item;
            //}
           
            //Console.WriteLine(sum);


            //字符串操作的类   StringBuilder效率比String操作高
            //StringBuilder sb=new StringBuilder();
            //sb.Append("123");
            //sb.Replace("1","3");//替换,改变的是自身字符串的内容
            //Console.WriteLine(sb.ToString());


            //string s = "123";
            //s.Replace("1","3");//替换,自身字符串不改变,返回一个替换之后的字符串
            //Console.WriteLine(s);


            //long start = System.DateTime.Now.Ticks;
            //string s = "abc";
            //for (int i = 0; i < 50000; i++)
            //{
            //    s = s += i;
            //}
            //string a = s;
            //long end = DateTime.Now.Ticks;
            //Console.WriteLine((end - start).ToString());


            //long start1 = DateTime.Now.Ticks;
            //StringBuilder s1 = new StringBuilder("abc");
            //for (int i = 0; i < 50000; i++)
            //{
            //    s1.Append(i);
            //}
            //string a1 = s1.ToString();
            //long end1 = DateTime.Now.Ticks;
            //Console.WriteLine((end1 - start1).ToString());


            //string  StringBulider     String  区别
            //String是字符串类,微软定义好的字符串类型
            //string是C#中的一个关键字,实际上定义一个string时就是去穿件了一个String的对象
            //StringBulider也是微软定义好的字符串操作的类,能做字符串的大部分操作,
            //StringBulider在做字符串操作时,自身改变,而string在做操作时一般返回一个新的字符串
            //每创建一个新的字符串时,都需要一申请新的内存,在字符串造作比较频繁时string的执行效率比较低
            //在字符串操作不是很频繁时,使用string相对来说好些,
            //string的方法要全面些,相对StringBulider所分配的内存要少得多
            




        }
    }
}


1. 输入一个邮箱地址,如果正确则显示success否则显示error(正确的邮箱地址包含@ . “@”和”.”之间应该有字符,”.”后应该也有字符)。 
Console.WriteLine("请输入一个邮箱地址:");
            string s = Console.ReadLine();
            bool b1 = s.Contains('@');
                      
             int index = s.IndexOf("@");
             int endindex = s.IndexOf(".");
             if (b1 && (index + 1 != endindex) && (endindex != s.Length))
             {
                 Console.WriteLine("success");
             }
             else
             {
                 Console.WriteLine("error");
             }
2. 输入一个小写字母,要求输出它的大写字母。(两种方式)
       第一种:
                 Console.WriteLine("请输入一个小写字母;");
            string a = Console.ReadLine();
            a= a.ToUpper();
            Console.WriteLine(a);
     第二种:
            Console.WriteLine("请输入一个小写字母:");
            int a = Console.Read();
            Console.WriteLine(Convert.ToChar(a-32));
3. 统计字符串中的子字符串出现的次数。(字符串和子字符串由自己定)
            Console.WriteLine("请输入一个字符串:");
            string a = Console.ReadLine();
            Console.WriteLine("请输入这个字符串的一个子字符串:");
            string b = Console.ReadLine();
            int index = a.IndexOf(b);
            int sum = 0;


            while (index >= 0)
            {


                if (index >= 0)
                {




                    sum += 1;
                    index++;
                    index = a.IndexOf(b, index);
                }
            }
            Console.Write(sum);
4. 将如下字符串以”.”分割成3个子字符串. ” www.softeem.com”。
            string str = "www.softeem.com";
            string[] arr = new string[3];
            arr = str.Split('.');
            foreach (string item in arr)
            {
                Console.WriteLine(item);
            }


5. 判断上传的文件是否为图片类型
            //string s = Console.ReadLine().ToLower().Trim();


            //string[] type = { ".jpg","png"};


            //bool b = false;
            //foreach (string item in type)
            //{
            //    b=  s.EndsWith(item);
            //    if (b)
            //    {
                    
                   
            //        break;
            //    }


              
            //}
            //if (b)
            //{
            //    Console.WriteLine("是图片");
            //}
            //else
            //{
            //    Console.WriteLine("不是图片");
            //}


你可能感兴趣的:(.NET系统课程)