C#——類 一、String 類 系統內置的處理字元串類型的函數方法類。方便我們對字元串類型進行一系列的處理。 1、Length:獲取字元串的長度,返回一個int類型的值 string x=Console.ReadLine();//小string是大String的快捷方式 int i = x.Len ...
C#——類
一、String 類
系統內置的處理字元串類型的函數方法類。方便我們對字元串類型進行一系列的處理。
1、Length:獲取字元串的長度,返回一個int類型的值
string x=Console.ReadLine();//小string是大String的快捷方式
int i = x.Length; Console.Write(i);
Console.ReadLine();
2、.Trim() 去掉開頭以及結尾的空格;.TrimStart() 去掉字元串開頭的空格;.TrimEnd() 去掉字元串後面的空格。
3、.ToUpper() 全部大寫;.ToLower() 全部小寫。
4、Substring(起始位置,截取長度);Substring(起始位置) 只寫起始位置,可以截取到尾。
註:字元串的編碼索引是從0開始的。
5、IndexOf("字元串") 返回第一次出現此字元串的索引,查找開頭第一次出現的索引號,返回值為-1.表示沒有找到。
LastIndexOf("字元串") 返回最後一次出現此字元串的索引。
6、StartsWith("字元串") 是否以此字元串為開頭,返回True或False。
EndsWith("字元串") 是否以此字元串為結尾,返回True或False。
Contains("字元串") 是否包含此字元串。返回True或者False。
7、Replace("老字","新字") 將老字用新字替換,即替換所有符合指定段的字元串條件的字元串(查找替換功能)。
綜上例題:判斷郵箱格式是否正確:1.有且只能有一個@;2.不能以@開頭;3.@之後至少有一個.;4.@和.不能靠在一起;5.不能以.結尾。
法一: Console.Write("請輸入您的郵箱賬號:");
string mail = Console.ReadLine();
if (mail.Contains("@"))
{
int a = mail.IndexOf("@");
int b = mail.LastIndexOf("@");
if (a == b)
{
if (!mail.StartsWith("@"))
{
string mail1 = mail.Substring(a);
if (mail1.Contains("."))
{
if (mail1.IndexOf(".") != 1 && mail.Substring(a - 1, 1) != ".")
{
if (!mail.EndsWith("."))
{
Console.WriteLine("輸入的郵箱格式正確!您輸入的賬號是:" + mail);
}
else
{
Console.WriteLine("格式錯誤!");
}
}
else
{
Console.WriteLine("格式錯誤!");
}
}
else
{
Console.WriteLine("格式錯誤!");
}
}
else
{
Console.WriteLine("格式錯誤!");
}
}
else
{
Console.WriteLine("格式錯誤!");
}
}
else
{
Console.WriteLine("格式錯誤!");
}
Console.ReadLine();
法二、 Console.Write("請輸入一個郵箱:");
string s = Console.ReadLine();
bool j = s.Contains("@");
int a = s.IndexOf("@");
int b = s.LastIndexOf("@");
bool i = true;
bool c = s.StartsWith("@");
string d = s.Substring(a);
bool e = d.Contains(".");
int f = s.IndexOf(".");
int g = s.LastIndexOf(".");
bool h = s.EndsWith(".");
if (j == i && a == b && f != a - 1 && g != b - 1 && c != i && e == i && h != i)
{
Console.WriteLine("格式正確");
}
else
{
Console.WriteLine("格式錯誤");
}
Console.ReadLine();
二、Math 類
●Ceiling() 取上線
●Floor() 取下線
●Math.PI 圓周率
●Math.Sqrt() 平方根
●Math.Round() 四捨五入(註意奇數偶數下.5不一樣的結果)
三、隨機數類:Random
需要使用隨機數的時候需要先初始化
Random ran = new Random();//初始化
int a = ran.Next(10);//返回0-9範圍內的數
Console.WriteLine(a);
綜上例題:驗證碼:隨機出四位驗證碼,A~Z a~z 0~9,不區分大小寫。
法一、 string ss = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
Random s = new Random();
int a = s.Next(62);
int b = s.Next(62);
int c = s.Next(62);
int d = s.Next(62);
string aa = ss.Substring(a, 1);
string bb = ss.Substring(b, 1);
string cc = ss.Substring(c, 1);
string dd = ss.Substring(d, 1);
string ee = aa + bb + cc + dd;
Console.WriteLine("驗證碼是:" + ee);
Console.Write("請對照輸入驗證碼:");
string shu = Console.ReadLine();
if (shu.ToUpper() == ee.ToUpper())
{
Console.WriteLine("輸入正確!");
}
else
{
Console.WriteLine("輸入錯誤!");
}
Console.ReadLine();
法二、 string ss = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
Random s = new Random();
string yan = "";
for (int i = 1; i <= 4; i++)
{
int a = s.Next(62);
yan += ss.Substring(a);
}
Console.WriteLine("驗證碼是:" + yan);
Console.Write("請對照輸入驗證碼:");
string shu = Console.ReadLine();
if (shu.ToUpper() == yan.ToUpper())
{
Console.WriteLine("輸入正確!");
}
else
{
Console.WriteLine("輸入錯誤!");
}
Console.ReadLine();
四、DateTime類 獲取時間
1、●若需要使用,首先需要初始化
DateTime dt = new DateTime();
Console.Write(" 請輸入一個日期時間:****/**/** **:**:**");
dt = DateTime.Parse( Console.ReadLine());
●若直接獲取當前時間,不用進行初始化
DateTime dt1 = DateTime.Now;
Console.WriteLine(dt1);
●獲取這一天是星期幾 DayOfWeek d = dt.DayOfWeek;獲取到的是英文。若想用中文,先d.ToString(),然後根據英文列印出中文。
●DayOfYear 獲取日期是當年的第幾天,返回int類型值
2、在控制台輸入的格式必須符合DateTime的格式才能正確接收
3、s = dt.ToString("yyyy年MM月dd日hh時mm分ss秒");
yyyy MM dd hh mm ss 均為代位符
yyyy年,MM月(必須大寫),dd日,hh時,mm分(小寫),ss(秒)
4、DateTime可以增加或者減去相應的時間
Add() 增加或者減去一定的時間間隔
AddYears() 增加或減去年份
AddMonths() 增加或減去月份
AddDays() 增加或減去天數
以此類推。
註意,加減天數,小時數是利用double類型。其他都是int類型
5、TimeSpan
TimeSpan time = new TimeSpan(10, 10, 10, 10);
Console.WriteLine(dt1.Add(time));
6、 獲取年 dt.Year
獲取月 dt.Month
獲取日 dt.Day
獲取小時 dt.Hour
獲取分 dt.Minute
獲取秒 dt.Second
Console.WriteLine(dt1.Hour);
DayOfWeek dw = dt1.DayOfWeek;
switch (dw.ToString())
{
case "Monday":
Console.WriteLine("星期一");
break;
}
例題:輸入兩個時間日期,計算出相差多少天(TotalDays)
Console.Write("請輸入你們戀愛的時間:");
DateTime dt = DateTime.Parse(Console.ReadLine());
DateTime dt1 = DateTime.Now;
Console.WriteLine((dt1-dt).TotalDays);
五、try catch:異常保護語句
Console.Write("請輸入一個整數:");
try//嘗試
{
int a = int.Parse(Console.ReadLine());
Console.WriteLine(a);
}
catch//若try裡面的語句有問題,直接跳到catch執行
{
Console.WriteLine("程式出現錯誤!");
}
finally//不管對與錯,都要執行
{
Console.WriteLine("感謝您的使用!");
}
Console.WriteLine("感謝您的使用!");
例題:判斷輸入的年月日格式是否正確
法一、DateTime
Console.Write("請按照格式正確輸入年月日(yyyy/MM/dd)");
string td = Console.ReadLine();
DateTime dt = new DateTime();
dt = DateTime.Parse(td);
string s;
s = dt.ToString("yyyy年MM月dd日");
string y = s.Substring(0, 4);
string M = s.Substring(5, 2);
string d = s.Substring(8, 2);
int iy = int.Parse(y);
int iM = int.Parse(M);
int id = int.Parse(d);
int rm = 1;
if (iy % 100 == 0)
{
if (iy % 400 == 0)
{
rm = 4;
}
}
else if (iy % 4 == 0)
{
rm = 4;
}
if (iy > 1 && iy <= 9999 && iM >= 1 && iM <= 12 && id >= 1 && id <= 31)
{
if (iM == 4 || iM == 6 || iM == 9 || iM == 11 && id >= 30)
{
Console.Write("輸入錯誤");
}
else if (iM == 2 && id == 29 && rm != 4)
{
Console.Write("輸入錯誤!:" + iy + "年不是閏年,2月沒有29號");
}
else if (iM == 2 && id >= 29)
{
Console.Write("輸入錯誤");
}
else
{
Console.WriteLine(s);
Console.WriteLine("輸入正確!");
}
}
Console.ReadLine();
法二、try-catch異常語句
Console.Write("請輸入日期時間:");
try
{
DateTime dt = DateTime.Parse(Console.ReadLine());
Console.WriteLine("您輸入的日期時間格式正確!");
}
catch
{
Console.WriteLine("您輸入的日期時間有誤!");
}
Console.WriteLine("感謝您的使用!再見!");
Console.ReadLine();
綜合例題:1、輸入一個1-100內的整數,若輸入錯誤請重新輸入
法一、 Console.Write("請輸入一個數:");
int a = int.Parse(Console.ReadLine());
for (int i = 1; ; i++)
{
if (a <= 100 && a >= 1)
{
Console.WriteLine(a);
break;
}
else
{
Console.Write("請重新輸入一個數:");
a = int.Parse(Console.ReadLine());
}
}
Console.ReadLine();
法二 Console.Write("請輸入一個數:");
int a = int.Parse(Console.ReadLine());
for (int i = 0; i<1; i++)
{
if (a <= 100 && a >= 1)
{
Console.WriteLine(a);
}
else
{
Console.Write("請重新輸入一個數:");
a = int.Parse(Console.ReadLine());
i--;
}
}
Console.ReadLine();
2、輸入年月日,判斷日期格式是否正確,不正確,重新輸入。
Console.Write("請輸入年份:");
int a = int.Parse(Console.ReadLine());
for (int i = 0; i < 1; i++)
{
if (a >= 0 && a <= 9999)
{
Console.Write("請輸入月份:");
int b = int.Parse(Console.ReadLine());
for (int j = 0; j < 1; j++)
{
if (b > 0 && b <= 12)
{
Console.Write("請輸入日:");
int c = int.Parse(Console.ReadLine());
for (int k = 0; k < 1; k++)
{
if (c > 0 && c <= 31)
{
if (b == 1 || b == 3 || b == 5 || b == 7 || b == 8 || b == 10 || b == 12)
{
Console.WriteLine("您輸入的日期格式正確!輸入的日期是:{0}-{1}-{2}", a, b, c);
}
else if (b == 4 || b == 6 || b == 9 || b == 11)
{
for (int l = 0; l < 1; l++)
{
if (c <= 30)
{
Console.WriteLine("您輸入的日期格式正確!輸入的日期是:{0}-{1}-{2}", a, b, c);
}
else
{
Console.Write("請重新輸入日份:");
c = int.Parse(Console.ReadLine());
l--;
}
}
}
else
{
if (c <= 28)
{
Console.WriteLine("您輸入的日期格式正確!輸入的日期是:{0}-{1}-{2}", a, b, c);
}
else
{
for (int r = 0; r < 1; r++)
{
if (c == 29)
{
for (int t = 0; t < 1; t++)
{
if ((a % 4 == 0 && a % 100 != 0) || a % 400 == 0)
{
Console.WriteLine("您輸入的日期格式正確!輸入的日期是:{0}-{1}-{2}", a, b, c);
}
else
{
Console.Write("請重新輸入年份:");
a = int.Parse(Console.ReadLine());
t--;
}
}
}
else
{
Console.Write("請重新輸入日份:");
c = int.Parse(Console.ReadLine());
r--;
}
}
}
}
}
else
{
Console.Write("請重新輸入日份:");
c = int.Parse(Console.ReadLine());
k--;
}
}
}
else
{
Console.Write("請重新輸入月份:");
b = int.Parse(Console.ReadLine());
j--;
}
}
}
else
{
Console.Write("請重新輸入年份:");
a = int.Parse(Console.ReadLine());
i--;
}
}
Console.ReadLine();