1. 程式人生 > >C#二維陣列及字串操作

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 <n; 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("不是圖片");
            //}


相關推薦

C#陣列字串操作

二維陣列 int r = arr.Rank;//陣列的維數 Console.WriteLine("長度{0}",arr.Length);//總長度 int e=arr.GetLength(0);//獲取第一維的長度 Console.WriteLine("第一維的長度{0}"

Java中Arrays.toString ()列印陣列Array陣列的常用操作

1.Java中Arrays.toString () 已知列印一維陣列的API為System.out.println ( Arrays.toString ();,其引數為陣列名或陣列指標,其支援的資料型別有很多,如:int[]、char[]、byte[]等。 import java

C#呼叫C++ 平臺呼叫P/Invoke 結構體--含有內建資料型別的一陣列字串指標【六】

【1】結構體中含有內建資料型別的一維陣列 C++程式碼: typedef struct _testStru3 { int iValArrp[30]; WCHAR szChArr[30];

iOS開發學習之C語言---C11 陣列字串陣列、多陣列

//  main.m //  C11 二維陣列、字串陣列、多維陣列 // //  Created by xalo on 15/10/21. //  Copyright (c) 2015年 Darling.com. All rights reserved. /

9、C語言中陣列陣列指向陣列的指標變數

#include <stdio.h> #include <stdlib.h> //與二維陣列相關的指標變數([] 比 *優先順序高) //在一般指標變數指向二維陣列,或者n維陣列,要直接操作a[i][j],對指標的操作必須有兩個符號(其中不出現&,如果有&則相應的加

C陣列行為空,列不為空

二維陣列: 處理二維陣列得函式有一處可能不太容易理解:陣列的行可以在函式呼叫時傳遞,但是陣列的列卻只能被預置在函式內部。 eg: 1 #define COLS 4 2 int sum(int ar[][COLS],int rows){ 3 int r ; 4 int c;

C++陣列動態記憶體分配【轉】

(轉自:https://www.cnblogs.com/Forever-Kenlen-Ja/p/3753566.html)   /*申請3行4列的二維陣列記憶體*/ int **array; array = new int *[3];/*先申請3個int*型

C++ 陣列動態記憶體分配過載以及拷貝構造

總時間限制:  1000ms   記憶體限制:  65536kB // 在此處補充你的程式碼 描述 寫一個二維陣列類 Array2,使得下面程式的輸出結果是: 0,1,2,3, 4,5,6,7, 8,9,10,11, next

C/C++陣列名和二級指標

轉載自http://blog.csdn.net/wu_nan_nan/article/details/51741030 C/C++二維陣列名和二級指標 原創 2016年06月23日

c++ -- 陣列引數傳遞

都知道,陣列名和函式名一樣,可以當做指標(普通指標和函式指標)來用。 關於二維陣列做為形參宣告和實參傳遞,直接看程式碼: #include <iostream> using namespace std; /*傳二維陣列*/ //第1種方式:傳陣列,第二維必須標明 /*void

C++陣列做引數

記錄一下近期的bug。 有關C++的陣列做函式的引數的問題。 原始碼: 函式宣告:void CalcFitness(int GA[groupNum][geneNum]) 函式呼叫:int GA=new int[groupNum][geneNum];            

C++陣列作引數時和指標的異同

二維陣列傳參 二維陣列不同於一位陣列,一維陣列傳引數時只需要傳指標即可,無需指定大小。二維做引數時必須指定第二維的大小,否則編譯不過。 void lalala(int a[][],int m, int n) //編譯報錯 void lalala(int a[][10]

c++陣列中指標詳解

二維陣列  a[2][3]={{1,2,3},{4,5,6}};指標p有如下幾種表達形式:    1 方式一:int (*p)[3]=a    (或&a[0]); 一定要加上括號,因為[]的優先順序高於*;意思是定義一個指向3個int型別變數的指標。p代表二維陣列

C++ 陣列/多陣列的動態分配(new)和釋放(delete)

1. 一維陣列 對於簡單的一維陣列動態記憶體分配和釋放,如下:int *array1D;//假定陣列長度為m //動態分配空間 array1D = new int [m]; //釋放 delete [] array1D; 2. 二維陣列 二維陣列的動態分配和釋放//假

C++: 陣列作函式引數

自http://blog.csdn.net/hanpingliang/article/details/3380351 變數在作用域裡面被宣告的是什麼型別,就當作什麼型別來用。 (1)引數是二維陣列,但是要指定第二維的維數。 int array[10][10];

陣列陣列的指標總結

一.二維陣列的結構 看下一個二維陣列int array[2][3]={{1,2,3},{4,5,6}};的記憶體儲存形式: 二維陣列是巢狀定義的 ,這個二維陣列就是由兩個一維陣列array[0]

C/C++陣列陣列指標)——陣列的傳值和陣列的一訪問

二維陣列既可以通過二維訪問也可以通過一維訪問。 對於二維陣列的傳值,引進了陣列指標。 #include <stdio.h> void foo(int *p,int n)//一維訪問 {

C++——陣列和物件陣列

6.3 二維陣列的宣告和引用 宣告:資料型別 識別符號[常量表達式1][常量表達式2];int a[3][4]; 表示a為整型二維陣列,其中第一維有3個下標(0~2),第二維有4個下標(0~3),陣列元素12個,可以用來存放3行4列的整型資料表格。可以理解為: a[0]—

C++陣列

如果陣列的元素又是陣列,則稱為二維陣列。例如 int a[3][4] = { {0, 1, 2, 3} , {4, 5, 6, 7} , {8, 9 ,10 ,11} };可以將a看成一個數組,這個陣列中有3個元素,每個元素又是一個包含4個int的陣列。 1 二維陣列的識別

c++陣列指標

1.定義指標指向二維陣列 為了方便根據使用者輸入動態定義二維陣列的行和列,引入變數rowsNum(行),colsNum(列)。 以定義5行4列的二維陣列為例, int rowsNum = 4; int colsNum = 5; float** a = new flo