随机数就是随机的数,它们是通过系统的一个随机数算法产生的,如果以同样的方式运行这个算法就会产生同样的随机数。因为随机数才有了种子这个概念,种子就是随机数算法用来产生随机数的依据,如果这个依据一成不变那么产生的随机数也是不变的,比如最后一组随机数就是不变的,因为它有一个固定的种子。我们知道只有时间是不断变化的,所以你使用时间作为随机数的种子就可以产生真正随机的数。当然使用固定种子的随机数还是有它的用处,所以Random也支持设置随机数种子。
字符串类
字符串是最常用的一种引用类型,字符串使用string 或String来定义,要注意string是.NET中String类的别名,两者是同一个东西。通常字符串是不可变的,字符串对象一旦创建,其内容就不能更改。通常我们使用“==”比较字符串是否相等,尽管string是引用类型,但定义相等运算符(==和!=)是为了比较string对象(而不是引用)的值。这使得对字符串相等性的测试更为直观。例如:
static void Main(string [] args)
{
string b="h";
b+="ello";
Console.WriteLine(a==b);
Console.WriteLine((object)a==(object)b);
}
这将先显示“True”,然后显示“False”,因为字符串的内容是相同的,但是a和b引用的不是同一个字符串实例。除此之外,系统提供了大量操作字符串的实例方法和静态方法,我们可以按照其实例方法和静态方法两方面来讨论string的用法。
首先来说,创建一个字符串对象可以直接创建也可以使用构造方法创建,如:
string a="我爱中国";
char [] cs={'H','E','L','L','O'};
string b=new string (cs);
创建完成后你可以使用其Length属性获得其长度,长度是指字符串包含有效字符的个数,你可以利用这个长度作为遍历字符串字符的条件:
for(int i=0;i<b.Length;i++)
{
Console.Write(b[i]);/*遍历字符串字符并打印*/
}
string 方法比较多,常用的有以下几个:
public int CompareTo (string dest)
public bool Contains(string dest)
public int IndexOf(string dest)
public string [] Split (char [] separator)
public string Substring(int startIndex,int length)
public string Replace(string sub,string dest);
public string Trim()
其中CompareTo用来比较当前字符串和目标字符串的大小,当当前字符串大于括号内字符串返回1,等于返回0,小于返回-1;Contains方法用来判断当前字符串是否包含指定的字符串,包含返回true,否则返回false;IndexOf用来查找是否包含括号内的字符串,如果找到则返回此字符串所在的索引,否则返回-1;Split方法非常好用,可以根据某个字符将字符串分成几个分割的子字符串;Substring可以根据索引截取字符串中的某一部分;Replace可以将字符串中的某一部分使用目标字符串替换;剩下的Trim方法可以把当前字符串的前后空格去掉。此外,还可以使用ToUpper方法将当前字符串转换成大写返回,使用ToLower方法将字符串转换成小写返回。
具体示例如下:
using System;
namespace My
{
class Test
{
[STAThread]
static void Main(string [] args)
{
string dish="一品豆腐,四喜丸子,炊石榴鸡,黄焖鱼翅";
//测试Contains方法
if(dish.Contains("四喜丸子")) Console.WriteLine("有四喜丸子!");
//测试SubString方法
string mydish=dish.Substring(5,4);
Console.WriteLine("Substring结果:{0}",mydish);
//测试Replace方法
mydish=dish.Replace("炊石榴鸡","东坡绣球");
Console.WriteLine("Replace结果:{0}",mydish);
//测试IndexOf方法
int n=dish.IndexOf("四喜丸子");
Console.WriteLine("IndexOf结果:下标为{0}",n);
//测试Split方法
char [] separator=new char [] { ','};
string [] foods=dish.Split(separator);
foreach (string t in foods) Console.Write(t);
}
}
}
运行结果:
有四喜丸子!
Substring结果:四喜丸子
Replace结果:一品豆腐,四喜丸子,东坡绣球,黄焖鱼翅
IndexOf结果:下标为5
一品豆腐四喜丸子炊石榴鸡黄焖鱼翅
除此之外,String类还提供了一些静态的方法,使你可以在不创建字符串对象的情况下方便的操作字符串,常用的静态方法列举如下:
public static readonly string Empty
public static string Format( string format, object args,…)
public static string Join( string separator,string [] value)
其中Empty表示空字符串,此属性为只读属性,Format将指定的字符串中的每个格式项替换为相应对象的值的文本等效项。Join在指定字符串数组的每个元素之间串联指定的分隔符字符串,从而产生单个串联的字符串,是Split方法的逆操作。
示例如下:
using System;
namespace My
{
class Test
{
[STAThread]
static void Main(string [] args)
{
string dish=string.Empty;//等效于string dish=""
string [] foods={"一品豆腐","四喜丸子","炊石榴鸡" };
string sep="|";
dish=String.Join(sep,foods);
Console.WriteLine(dish);
}
}
}
运行结果:
一品豆腐|四喜丸子|炊石榴鸡
随机数就是随机的数,它们是通过系统的一个随机数算法产生的,如果以同样的方式运行这个算法就会产生同样的随机数。因为随机数才有了种子这个概念,种子就是随机数算法用来产生随机数的依据,如果这个依据一成不变那么产生的随机数也是不变的,比如最后一组随机数就是不变的,因为它有一个固定的种子。我们知道只有时间是不断变化的,所以你使用时间作为随机数的种子就可以产生真正随机的数。当然使用固定种子的随机数还是有它的用处,所以Random也支持设置随机数种子。
字符串类
字符串是最常用的一种引用类型,字符串使用string 或String来定义,要注意string是.NET中String类的别名,两者是同一个东西。通常字符串是不可变的,字符串对象一旦创建,其内容就不能更改。通常我们使用“==”比较字符串是否相等,尽管string是引用类型,但定义相等运算符(==和!=)是为了比较string对象(而不是引用)的值。这使得对字符串相等性的测试更为直观。例如:
static void Main(string [] args)
{
string b="h";
b+="ello";
Console.WriteLine(a==b);
Console.WriteLine((object)a==(object)b);
}
这将先显示“True”,然后显示“False”,因为字符串的内容是相同的,但是a和b引用的不是同一个字符串实例。除此之外,系统提供了大量操作字符串的实例方法和静态方法,我们可以按照其实例方法和静态方法两方面来讨论string的用法。
首先来说,创建一个字符串对象可以直接创建也可以使用构造方法创建,如:
string a="我爱中国";
char [] cs={'H','E','L','L','O'};
string b=new string (cs);
创建完成后你可以使用其Length属性获得其长度,长度是指字符串包含有效字符的个数,你可以利用这个长度作为遍历字符串字符的条件:
for(int i=0;i<b.Length;i++)
{
Console.Write(b[i]);/*遍历字符串字符并打印*/
}
string 方法比较多,常用的有以下几个:
public int CompareTo (string dest)
public bool Contains(string dest)
public int IndexOf(string dest)
public string [] Split (char [] separator)
public string Substring(int startIndex,int length)
public string Replace(string sub,string dest);
public string Trim()
其中CompareTo用来比较当前字符串和目标字符串的大小,当当前字符串大于括号内字符串返回1,等于返回0,小于返回-1;Contains方法用来判断当前字符串是否包含指定的字符串,包含返回true,否则返回false;IndexOf用来查找是否包含括号内的字符串,如果找到则返回此字符串所在的索引,否则返回-1;Split方法非常好用,可以根据某个字符将字符串分成几个分割的子字符串;Substring可以根据索引截取字符串中的某一部分;Replace可以将字符串中的某一部分使用目标字符串替换;剩下的Trim方法可以把当前字符串的前后空格去掉。此外,还可以使用ToUpper方法将当前字符串转换成大写返回,使用ToLower方法将字符串转换成小写返回。
具体示例如下:
using System;
namespace My
{
class Test
{
[STAThread]
static void Main(string [] args)
{
string dish="一品豆腐,四喜丸子,炊石榴鸡,黄焖鱼翅";
//测试Contains方法
if(dish.Contains("四喜丸子")) Console.WriteLine("有四喜丸子!");
//测试SubString方法
string mydish=dish.Substring(5,4);
Console.WriteLine("Substring结果:{0}",mydish);
//测试Replace方法
mydish=dish.Replace("炊石榴鸡","东坡绣球");
Console.WriteLine("Replace结果:{0}",mydish);
//测试IndexOf方法
int n=dish.IndexOf("四喜丸子");
Console.WriteLine("IndexOf结果:下标为{0}",n);
//测试Split方法
char [] separator=new char [] { ','};
string [] foods=dish.Split(separator);
foreach (string t in foods) Console.Write(t);
}
}
}
运行结果:
有四喜丸子!
Substring结果:四喜丸子
Replace结果:一品豆腐,四喜丸子,东坡绣球,黄焖鱼翅
IndexOf结果:下标为5
一品豆腐四喜丸子炊石榴鸡黄焖鱼翅
除此之外,String类还提供了一些静态的方法,使你可以在不创建字符串对象的情况下方便的操作字符串,常用的静态方法列举如下:
public static readonly string Empty
public static string Format( string format, object args,…)
public static string Join( string separator,string [] value)
其中Empty表示空字符串,此属性为只读属性,Format将指定的字符串中的每个格式项替换为相应对象的值的文本等效项。Join在指定字符串数组的每个元素之间串联指定的分隔符字符串,从而产生单个串联的字符串,是Split方法的逆操作。
示例如下:
using System;
namespace My
{
class Test
{
[STAThread]
static void Main(string [] args)
{
string dish=string.Empty;//等效于string dish=""
string [] foods={"一品豆腐","四喜丸子","炊石榴鸡" };
string sep="|";
dish=String.Join(sep,foods);
Console.WriteLine(dish);
}
}
}
运行结果:
一品豆腐|四喜丸子|炊石榴鸡