The NOTE of learning ASP.NET [15] 关于.NET字符串类的使用

2010年05月22日 留下评论
字符串是开发当中使用最多的数据类型,以下整理字符串类的相关属性和方法:
  • Empty属性  String.Empty代表了一个空的字符串,但是不等于null,null是对象未初始化的状态
    可以使用 emptyString == String.Empty 这样的表达式来判断emptyString变量是否为空字符串。
  • Length属性 返回调用此方法字符串的字符个数。例如:myName = "Arvin Rong",这时使用
    myName.Length将会返回int型数值10。
  • Chars属性 例如存在一个字符串myName = "Arvin Rong",这时可以使用myName[0]取得字符串
    的第一个字符’A’,或者把0替换为任意小于字符串长度的数字。返回的值为char型
  • //比较字符串的相关方法——————————————————————
  • Compare方法 使用两个字符串作为参数,如果第一个参数小于第二个参数则返回负数,如果相等
    返回0,如果大于第二个参数则返回正数。这里说的大小指的是字符的ASCII码的大小,Compare方法
    是逐字符比较的,先比较两字符串的第一个字符,如果不相等则返回结果(正数,0或者负数),如果
    相等则继续比较到长度较短的字符串的最后一个字符。
  • Equals方法 使用两个字符串作为参数,比较两个字符串是否相等。String.Equals(stringA,stringB)
  • CompareTo方法 由第一个字符串调用此方法,第二个字符串作为参数。 返回结果和Compare是一样的。
  • //检索字符串的相关方法——————————————————————–
  • StartsWith方法,EndsWith方法,Contains方法,均由第一个字符串调用,第二个字符串作为参数传入,
    如果在第一个字符串中检索到第二个字符串则返回true。
  • IndexOf方法 由第一个字符串调用,第二个字符串作为参数传入,如果在第一个字符串中检索到第二个字符串
    则返回第二个字符串在第一个字符串中的位置。例如:myName = "Arvin Rong"; myName.IndexOf("Rong")
    会返回数值6
  • //编辑字符串的相关方法——————————————————————–
  • Insert方法 由第一个字符串调用,添加另外一个字符串到第一个字符串的特定位置。
  • Remove方法 由字符串调用,从字符串中移除一段字符串。例如:myName = "Arvin Rong";
    myName.Remove(5)返回字符串"Arvin",或者myName.Remove(5,1)返回字符串"ArvinRong"
    5代表起始位置,1代表需要移除的字符个数,默认不设置的话会把起始位置到最后一个字符都移除。
  • Replace方法 由字符串调用,传入两个字符串作为参数,第一个字符串为要替换的目标字符串,第二个字符串
    为需要替换成的实际字符串。
  • Trim方法 由字符串调用,去除字符串两侧的空格。例如:myName.Trim();
  • TrimStart方法 由字符串调用,去除字符串前端的空格。
  • TrimEnd方法 由字符串调用,去除字符串末尾的空格。
  • PadLeft方法,PadRight方法 由字符串调用传入整型值作为参数,设置一个长度,若调用此方法的字符串不足
    设置的长度。则用空格或者特定的字符补足。例如 myFirstName = "Arvin"; myFirstName.PadLeft(7) 会
    返回字符串"  Arvin",在Arvin前加了两个空格来补足长度为7个字符。我们也可以调用myFirstName.PadLeft(7,’-‘)
    用第二个参数 ‘-‘ 来设定我们需要的特定用来补足长的的字符。这个调用的结果是返回字符串"–Arvin"
  • ToUpper,ToLower方法 由字符串调用返回字符串的大写形式或者小写形式。
  • Substring方法 用来在字符串中提取特定的一段字符串。可以有一个或两个参数,第一个为要开始截取的位置,
    第二个为截取的长度,若不提供第二个参数默认提取到字符串末尾。例如:myName = "Arvin Rong";myName.Substring(6)
    会返回"Rong",myName.Substring(6,2)则返回"Ro".

    Substring方法可以配合IndexOf方法使用,例如:myName = "Arvin-Rong";
    myName.Substring(myName.IndexOf(‘-‘)+1) 返回字符串"Rong"

  • Split方法 由字符串调用,传入包含分隔符的字符串或字符数组作为参数,返回由传入分隔符分隔后生成的字符串数组。
    例如:testString = "stringA,stringB/stringC"; char[] separatorList = {’,’, ‘/’}; testString.Split(separatorList);
    返回字符串数组里面包含了三个字符串分别是 "stringA","stingB","stringC"
  • 需要注意以上编辑字符串的方法都不会改变调用方法的字符串本身,而是创建了一个新的字符串然后返回。
    例如:
    myName = "Arvin Rong";tempString =  myName.Remove(5) 返回字符串"Arvin"赋值给tempString;
    但是myName本身的值仍为 "Arvin Rong";
Advertisements
分类:ASP.NET

The NOTE of learning ASP.NET [14] 使用.NET Framework中System.Xml命名空间下的类读写XML文件

2010年05月20日 留下评论

     .NET中对XML读写进行了很好的支持,在.NET Framework中Xml命名空间下提供了很多类来对XML文件进行读写等操作。在需要读写XML文件时时我们可以在代码顶部输入using System.Xml 来告诉编译器和运行时环境我们需要使用此命名空间下的类。
     首先回顾下关于XML的基本信息:
     1.XML 全称 Extensible Makeup Language 扩展标记语言,可以用来存储格式化的数据。
     2.XML 是基于(elements)元素的
     3.element由开始标记,元素内容以及结束标记组成。
     4.元素的属性可以存储当前标签的信息。

      以下是XML示例代码片段,这里我们存储了关于章节的信息,我们存储了两个章节,并存储了他们的标题:           
         <chapters total="2">
                <chapter>Data Types, Variables and Operators</chapter>
                <chapter>Language Fundamentals</chapter>
         </chapters>
        
 了解.Net Framework中XML读写相关的类:
     1.XmlWriter类 我们使用这个类把XML写入文件或者内存中,它的常用方法及属性如下:
        Create方法 创建一个新的实例,调用时传入XML文件的名称作为参数。
        WriteStartDocument方法 输出XML的定义头:类似 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
        WriteStartElement方法 输出元素开始部分,就是上边XML示例中的<chapters total="2">这行。
        WriteEndElement 方法  输出元素结束部分  </chapters>
        WriteElementString方法 一次性输出包括元素开始部分,元素内容和元素结束部分。可以一次性输出后面的内容,<chapter>Language Fundamentals</chapter>

    2.XmlWriterSettings类 我们使用这个类来设置我们写入XML的一些格式信息。
       Indent属性 可以设置为true或者false 来设置当我们写入XML的元素时,元素是否使用缩进。
       IndentChars属性 可以定义我们使用缩进时使用的分隔符。
       NewLineChars属性 定义我们写入元素时换行使用的字符。

    3.XmlReader类 我们使用这个类来读取文件或内存中的XML文件,它的常用方法及属性如下:
      Create方法 创建一个新的XML文件引用实例,调用时传入XML文件的名称作为参数。
      Read方法 一次读取一个元素的节点,返回true或者false
      NodeType属性 判断当前Read方法读取的标记节点类型,是element还是文本。
      ReadToFollowing方法 传递一个我们要查找的element名称作为参数,    和Read方法基本一样,只是我们这里是要找寻特定名称的element

示例代码如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml;
 
namespace UsingNetFramework
{
  class Program
  {
    static void Main(string[] args)
    {
            static void WriteAndReadXML()  // 这里只定义了一个静态方法,执行下面的代码块
           {

                   // 首先new一个XmlWriterSettings类的实例,起个名字叫settings,用来定义使用XmlWriter类来输出XML的格式设置。
                   XmlWriterSettings settings = new XmlWriterSettings();

                   // 设置settings对象的Indent属性为true,这样在使用XmlWriter输出XML时会自动使用缩进
                   // 如果这里设置成false则输出的XML文件会没有任何换行缩进等格式
                   settings.Indent = true; 
                  
                   // 设置换行字符
                   settings.NewLineChars = "rn";

                   // 通过调用XmlWriter类的静态方法Create来新建一个写XML文件的writer对象,如果文件已经存在会覆盖他里面的内容。
                   // 调用这个方法传进了两个参数,第一个是字符串型,为我们要创建的文件的名称,包括要存放的位置的全路径。
                   // 第二个参数是我们在上边创建的settings对象,这样可以让writer使用我们定义好的格式来输出XML。
                   XmlWriter writer = XmlWriter.Create("c:\test.xml", settings);
 
                   writer.WriteStartDocument(true); //输出XML的定义头:类似 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
                   writer.WriteStartElement("chapters"); //输出chapters元素的开始标签<chapters>
                   // 下面一行代码为上一行代码输出的chapters元素添加一个属性,这样我们实际看到的效果应该是<chapters total="2">
                   writer.WriteAttributeString("total", "2"); 

                   // 下面一行代码一次输出了一个完整的元素,一次性输出包括元素开始部分,元素内容和元素结束部分。
                   // 输出效果所示:<chapter>Data Types, Variables and Operators</chapter>
                   writer.WriteElementString( "chapter", "Data Types, Variables and Operators");
                   writer.WriteElementString( "chapter", "Language Fundamentals");
                  
                   // 输出chatpers元素的结束部分</chapters>
                   writer.WriteEndElement();

                   // 结束我们的输出,文件在我们使用Create方法时已经在硬盘中生成,但是只有当我们调用了Close方法后以上内容才会真正输出到文本文件中。
                   writer.Close();
                   
                   /// 上面的部门示例了写XML的一般方法,下面则是读取XML的一般方法
                   // 读取XML文件我们使用XmlReader类,首先也需要使用XmlReader的Create方法来新建一个XmlReader的对象,
                   // 这实际上是我们XML文件的一个引用,方法的参数为我们要读取文件的名称包括其全路径。
                   XmlReader reader = XmlReader.Create("c,:\test.xml");        ///"c:\test.xml"中的\是使用了转义字符
 
                  // Read the XML one node at a time
                  // 这里使用了一个while循环,如果reader对象的Read方法返回true,说明我们读取到了XML文件中的节点信息
                  // 返回false的时候说明我们已经读取完所有信息。可以这么理解,使用一次Read方法如果读到数据,即把当前读到的节点
                  // 数据保存到reader对象中,然后我们就可以调用reader对象的属性来读取当前读到的节点的信息。
                  while (reader.Read())
                  {
                        if (reader.NodeType == XmlNodeType.Text)
                       {
                            Console.WriteLine(reader.Value);
                       }
                   }

                   // 当我们读取完毕需要使用Close方法来关闭这个读取流。
                   reader.Close();
 
                   Console.WriteLine();

                   // 上面演示了XmlReader的Read方法,下面是XmlReader类的ReadToFollowing方法的示例
                   // 同样需要使用XmlReader的Create方法来新建一个XmlReader的对象,可能有人会问为什么上面已经新建了一个
                   // XmlReader的对象,而这里不能直接使用呢。这是因为无论是使用Read方法还是ReadToFollowing方法,读取
                   // XML的顺序都是从上到下而不能回到顶部重新读取的。所以每次需要重新读取XML文件都需要新建一个XmlReader类的对象。
                   reader = XmlReader.Create("c:\test.xml");
                   
                   // 区别于Read方法依次读取XML的每个节点信息,ReadToFollowing方法可以读取特定名称的节点的信息
                   // 这里选择只读取元素名称为chapter的元素节点。
                   while (reader.ReadToFollowing("chapter"))
                   {
                          // 读到一个元素节点后我们可以使用它的信息进行操作,这里输出了这个元素的内容
                          Console.WriteLine(reader.ReadInnerXml());
                   }
                    
                   // 关闭读取流
                   reader.Close();
               }
        }
     }
  }

分类:ASP.NET

The NOTE of learning ASP.NET [13] 关于.NET中的Constants,Enumerations,Structs

2010年05月20日 留下评论
Constants 即常量,可以像普通变量一样使用const来定义,但是它的值在应用程序运行中是不可以改变的,例如我们常见的圆周率。
Enumerations 是枚举型, 是一些相关的常量的集合,使用enum标识来定义。它有两个域,名字和数字域。使用时通过枚举量名.名字域来调用。
       例:enum weekDay
            {
        Sunday = 1,
        Monday = 2,
        Tuesday = 3,
        Wednesday = 4,
        Thursday = 5,
        Friday = 6,
        Saturday = 7,
            }
           我们调用的时候就可以使用weekDay.Sunday 这样来调用,返回值为1
 
Structs 及结构型, 和枚举型类似,但是相当于枚举类型的数字域可以存储任何类型数据。使用struct来定义
    例:struct Person
        {
            public string FirstName;
            public string LastName;
            public int Age;
              }
             Person person ;
        person.FirstName = "Lei";
        person.LastName = "Rong"
        person.Age = 25;
        System.Console.Write("{0} {1} is a {2} years old boy.",person.FirstName,person.LastName,person.Age);
 
 
分类:ASP.NET

The NOTE of learning ASP.NET [12] 关于.NET的比较运算符

2010年05月19日 留下评论
1.is 比较运算符,我们可以使用这个运算符来判断一个变量是否为某一类型,然后返回true或者false
  例:int intValue;
       if(intValue is int)
       {
           System.Console.WriteLine("intValue is a int type variable.");
       }
2.&& 和 || 运算符优先级的问题
   可以看一下这个表达式: 500>400 && 400>500 || 300>200
   这个表达式返回true还是false? 我们给这个表达式加上个括号就可以清楚的判断它在.NET中应该的返回值了,如下:
   500>400 && (400>500 || 300>200) 很明显这个表达式应该是返回true
分类:ASP.NET

The NOTE of learning ASP.NET [11] 关于.NET变量的强制类型转换

2010年05月18日 留下评论
当把一个数据类型赋值给另外一个数据类型的变量时可能需要显式的进行类型转换,比如当你把一个int变量赋值给一个short变量时,因为short变量存储的数值范围小于int型所以有可能发生数据丢失,这样的时候就需要我们进行显式数据类型转换。 而把short型赋给int型或long型时则不需要。
 
1.使用强制类型转换符 例: shortValue = (short)(shortValue+byteValue) ;
   这里使用"(short)"来把后面 shortValue + byteValue 的值(默认相加得到的值是int型的)转换为short型再赋给前面的short型变量shortValue
2.使用Convert类,Convert类中有很多类型转换的函数 例:Convert.ToSingle(longValue);
   这里使用Convert类把一个long型变量longValue转换为float型。
3.使用Parse方法,Parse方法可以把一个字符串转换为另外一个数据类型。 例:Single.Parse(longValue.ToString());
   这里是把一个long型变量那个转换为float型,我们首先使用long型变量的ToString方法把long型转换为字符串,然后在外层使用Single类的Parse方法来把刚刚转换来的字符串转换为float型数据。
分类:ASP.NET

The NOTE of learning ASP.NET [10] 关于.NET整型与浮点型变量使用上的效率和存储问题

2010年05月18日 留下评论
如果存储对程序来说不是主要考虑因素的话整型建议使用int型,浮点型建议使用double型,这样是效率最高的方法。
如果应用对内存节省要求很高的话可以考虑使用short,byte,float等代替int和double。
分类:ASP.NET

The NOTE of learning ASP.NET [9] .NET的基本数据类型及其常用方法

2010年05月17日 留下评论
.NET的基本数据类型都是在System命名空间下定义的,定义它们的类分别为:
整型变量
sbyte   -System.Sbyte 范围是 -128 到 127
byte     -System.Byte 范围是 0 到 256
short    -System.Int16 范围是 -32768 到 32767
ushort  -System.Uint16 范围是 0 到 65535
int       -System.Int32 范围是 -2,147,483,648 到 2,147,483,647
uint      -System.Uint32 范围是 0 到 4,294,967,295
long     -System.Int64 范围是 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
ulong   -System.Uint64 范围是 0 到 18,446,744,073,709,551,615
—常用方法和常量:
Maxvalue,Minvalue 分别指出当前类型的最大值及最小值,即我们是上边写出的范围。调用方法使用实际类来调用,例:System.Int32.Maxvalue
ToString() 很有用的方法,我们利用它来把数字输出为我们需要的格式,例:
        int a = 123456789;
        System.Console.Write(a.ToString()); 默认正常输出
        System.Console.Write(a.ToString("g"));  默认正常输出
        System.Console.Write(a.ToString("d")); 输出为十进制
        System.Console.Write(a.ToString("n")); 输出为数字形式即123,456,789
        System.Console.Write(a.ToString("c")); 输出为货币形式即$1,000.00
        System.Console.Write(a.ToString("h")); 输出为16进制形式
 
浮点型变量
float    -System.Single 一般来说只保持7个有效数字,超过第七位的数字都记为0,比如说我们赋给float值8888888888(一共10位),当我们输出的时候这个数字就会变成,8888889000.00,再比如,0.8888888888 输出则为0.8888889
double  -System.Double 一般来说是保持15为有效数字。
decimal -System.Decimal 一般来说是保持28为有效数字
—Decimal类型常用方法:
Truncate 返回整型部分值
       Round    返回四舍五入整型值,或加入小数位数参数,来返回四舍五入到小数第几位的值。例Decimal.Round(55.6)返回56 Decimal.Round(55.844, 2)返回55.84
       Floor      返回小于Decimal变量的最大整数
       Ceiling    返回大于Decimal变量的最小整数
 
字符类型
char    -System.Char 存放字符编码等,范围 0 到 65536 ,其中0 到 127 是标准的ASCII码
—常用方法
ConvertFromUtf32(82) 这个方法返回的是’R’
ConvertToUtf32("R",0) 返回为82
IsControl 用来判断此字符是否为回车,换行,TAB等这样的格式控制字符
IsDigit 判断是否为数字
IsLetter 判断是否为字母
IsLetterOrDigit 判断是否为数字或字母
IsLower 判断是否为小写形式
IsUpper 判断是否为大写形式
IsPunctuation 判断是否为标点
IsSeparator 判断是否为空格等这样的分隔符
IsSymbol 判断是否为符号像 + -这样的符号
IsWhiteSpace 判断是否为空白字符,像空格和回车都会返回TRUE,而TAB返回False
 
字符串类型
string   -System.String .NET中的字符串像其他编程语言一样可以使用转义字符“”,如果当字符串中包含“”或者“"”这两种字符时,我们还可以使用@来避免使用转义字符。比如说我们需要一个文件路径的字符串我们可以写么写 @"c:program filesanyfilesc.txt"。如果不使用@的话我们则需要写成 "c:\program files\anyfiles\c.txt"。当字符串中含有“"”时,我们也可以使用@,但是需要注意的是“"”需要写两遍。
 
布尔类型
bool   -System.Boolean 值为1(true) 或 0(false)
 
对象类型
-System.Object 对象类型中可以包含任何其他类型数据类型的变量或其它对象。但就这个对象变量本身来说它并没有保存整个对象的内容,而是只保存了一段内存中实际对象的一个引用。如果说实际的对象是一个电视机的话,那我们的对象变量本身则是一个遥控器,提供了在内存找找到该对象的途径。
—常用方法:
        GetType 用来返回对象的类型
 
 
分类:ASP.NET