上次举了个各个数据类型的例子,但没有说各个数据类型的表示范围,其实这个需要用到MaxValue和MinValue函数
例1:
using System;
class Program
{
static void Main(string[] args)
{
/*下面给出各个数据类型所能表示的最大值和最小值*/
//整数类型
sbyte sbyteMax = sbyte.MaxValue, sbyteMin = sbyte.MinValue;
byte byteMax = byte.MaxValue, byteMin = byte.MinValue;
short shortMax = short.MaxValue, shortMin = short.MinValue;
int intMax = int.MaxValue, intMin = int.MinValue;
uint uintMax = uint.MaxValue, uintMin = uint.MinValue;
long longMax = long.MaxValue, longMin = long.MinValue;
ulong ulongMax = ulong.MaxValue, ulongMin = ulong.MinValue;
//浮点数类型
float floatMax = float.MaxValue, floatMin = float.MinValue;
double doubleMax = double.MaxValue, doubleMin = double.MinValue;
decimal decimalMax = decimal.MaxValue, decimalMin = decimal.MinValue;
//字符型、布尔型及字符串型
char charMax = char.MaxValue, charMin = char.MinValue;
//bool b = false; //布尔值只有true和false
//string s = "还是初学者"; //只能表示字符串
/*下面是对这些变量的值的输出*/
Console.WriteLine("sbyte型变量最大表示分为为:{0}\n 最小表示范围为:{1}", sbyteMax, sbyteMin);
Console.WriteLine("byte型变量最大表示分为为:{0}\n 最小表示范围为:{1}", byteMax, byteMin);
Console.WriteLine("short型变量最大表示分为为:{0}\n 最小表示范围为:{1}", shortMax, shortMin);
Console.WriteLine("int型变量最大表示分为为:{0}\n 最小表示范围为:{1}", intMax, intMin);
Console.WriteLine("uint型变量最大表示分为为:{0}\n 最小表示范围为:{1}", uintMax, uintMin);
Console.WriteLine("long型变量最大表示分为为:{0}\n 最小表示范围为:{1}", longMax, longMin);
Console.WriteLine("ulong型变量最大表示分为为:{0}\n 最小表示范围为:{1}", ulongMax, ulongMin);
/*输出变量,需先写{},里边的数字为正数,从0依次递增,类似于C中的%d、%f什么的,如下面这样,也是可以得*/
Console.WriteLine("float型变量最大表示分为为:{0}\n 最小表示范围为:{1}", floatMax, floatMin);
Console.WriteLine("double型变量最大表示分为为:{0}\n 最小表示范围为:{1}", doubleMax, doubleMin);
Console.WriteLine("decimal型变量最大表示分为为:{0}\n 最小表示范围为:{1}", decimalMax, decimalMin);
//Console.WriteLine("char型变量c = {0}", c);
//Console.WriteLine("bool型变量b = {0}", b);
//Console.WriteLine("string型变量s = {0}\n", s); //换行符\n还是可以用的,转义字符的用法差不多
Console.ReadLine();
}
}
输出结果为:
对于指数的表示,是差不多的,而十六进制数的输出,则略有不同
例2:
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("输出两个指数形式的数:\n1.392784E10f \n1.392784e10f");
Console.WriteLine("输出一个十六进制数:0x{0:x}", 64);
Console.ReadLine();
}
}
输出结果为:
string型变量是不可变的(我感觉这么说并不恰当),具体理由见下例
例3:
using System;
class Program
{
static void Main(string[] args)
{
string str = "Hello";
//通过.Length获取字符串的长度,和C中的strlen函数功能一样
Console.WriteLine("字符串变量str中的字符串长度为:{0}\n", str.Length);
/*
string st1;
st1 = Console.ReadLine();
//string型变量的值是不可变的,即像这样,调用ToUpper函数,字符串中的字符不会变成大写
st1.ToUpper();
//这个函数是把字符串中的小写字母转化为大写字母
Console.WriteLine(st1);
*/
//输出时会发现ss的内容会原样输出,而不会有所改变,其实可以这样做
string st2, st3;
Console.WriteLine("请输入一个字符串:");
st2 = Console.ReadLine();
st3 = st2.ToUpper();
Console.WriteLine(st3);
Console.WriteLine("人艰不拆!");
Console.ReadLine();
}
}
输出结果为:
下面说一些关于字符串的方法(方法即函数,注:这里说的是实例方法,即非静态方法),关于字符串的方法有很多,这里简单提上几个。
其实,在上个程序中已经使用了ToUpper方法,其它的还有ToLower、Replace、Trim等
还是举例说明
例4:
using System;
class Program
{
static void Main(string[] args)
{
string str = "Hello";
string strup = str.ToUpper(); //将字符串全部字母变为大写
string strlo = strup.ToLower(); //将字符串全部字母变为小写
Console.WriteLine(strup);
Console.WriteLine(strlo);
string str1 = " start asd ";
string strtr = str1.Trim(); //移除字符串开头和结尾的whitespace(包括空格、制表符和回车)
Console.WriteLine(strtr);
string str2 = "@@222##";
string strcp = "asd";
strcp = string.Copy(str2); //复制字符串,不多说,类似于C中的strcpy,这个就不一一对应的列举了
Console.WriteLine(strcp);
string str3 = "睡觉whitespaceaaa";
string strrep = str3.Replace('a', 's'); //在该字符串中,用后面的字符取代前面的字符
string strrep2 = str3.Replace("aaa", "asd");//在该字符串中,用后面的字符串取代前面的字符串
string strrep3 = str3.Replace("睡觉", "天很晚了,");
Console.WriteLine(strrep);
Console.WriteLine(strrep2);
Console.WriteLine(strrep3);
//Compare:比较两个指定的 String 对象,并返回一个指示二者在排序顺序中的相对位置的整数
string str4 = "abc";
string strcm1 = "abc";
string strcm2 = "Abc";
string strcm3 = "bbc";
string strcm4 = "aac";
Console.WriteLine();
Console.WriteLine("{0}\n{1}\n{2}\n{3}", string.Compare(str4, strcm1),
string.Compare(str4, strcm2), string.Compare(str4, strcm3), string.Compare(str4, strcm4));
Console.ReadLine();
}
}
输出结果为:
关于更多的string的方法,可以参见——MSDN
这些博客主要是讲我在学C#(我主要看的书是《C#本质论第三版》)的过程中,发现它和C/C++、Java的不尽相同之处,都是自己的见解,也是比较浅显的知识,如有错误,欢迎指出
如无说明,所有程序都是在Visual Studio 2012下运行通过