亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C# 字符串詳細使用

2019-11-17 02:50:23
字體:
來源:轉載
供稿:網友

C# 字符串詳細使用

轉自 http://www.49028c.com/candywyq/archive/2007/07/24/830021.html

1.Convert.ToInt32與Int32.Parse的恩恩怨怨

2.Split的3種用法

3.@"abc"和"abc"區別在那里

4.保留2位有效小數及四舍五入

5.url傳遞中文的解決方案

6.把123456789轉換為12-345-6789的3種方法

7.交換兩個指定位置字符的4種方法

8.“%10”的妙用

9.輸出21個AAAAAAAAAAAAAAAAAAAAA的巧妙做法

1.Convert.ToInt32Int32.Parse的恩恩怨怨

這2個方法都可以把把string解析為int,那么我們一定會有疑問:到底他們有什么區別?什么時候該用什么?性能如何等等。

其實在2.0里還有Int32.TryParse也實現了同樣的效果。

using System;using System.Collections.Generic;using System.Text; namespace Consoleapplication1 {            class PRogram            {                       static void Main(string[] args)                       {                                string myString = "1234";                   int myint = 0;                                myint = Convert.ToInt32(myString);                   Console.Write(myint+"/r/n ");                                myint = Int32.Parse(myString);                    Console.Write(myint+"/r/n ");                         Int32.TryParse(myString, out myint);                        Console.Write(myint+"/r/n");                }          }}    

表面上看,可見3個方法都實現了同樣的效果!

那么我們把代碼改一下:

            //string myString = "1234";                     string myString = null;                      int myint = 0;            myint = Convert.ToInt32(myString);            Console.Write(myint+"/r/n");            myint = Int32.Parse(myString);             Console.Write(myint+"/r/n");            Int32.TryParse(myString, out myint);              Console.Write(myint+"/r/n");            

這次字符串是null,那么運行結果會怎樣呢?

這是因為如果解析錯誤: Convert.ToInt32()在null時不拋異常而是返回0; Int32.Parse()拋異常; Int32.TryParse()不拋異常,會返回true或false來說明解析是否成功,如果解析錯誤,調用方將會得到0值。

由于Convert.ToInt32()在null時我們看不到Int32.TryParse()的運行結果所以再分調試和不調試來看結果的差異:

調試:

不調試:

其實一般出bug畢竟屬于少數,而且大家都會測試保證不出bug,那么我們最關心的或許就是性能。

再把代碼修改一下: 2

string myString1 = "1234";     //string myString = null;        int myint = 0;            Console.Write(System.DateTime.Now.ToString()+"  "+System.DateTime.Now.Millisecond.ToString() + " ");           for (int i = 0; i < 1000000;i++ )           {                   myint = Convert.ToInt32(myString1);     }           Console.Write(myint + " /r/n");   Console.Write(System.DateTime.Now.ToString() + "  " + System.DateTime.Now.Millisecond.ToString() + "/r/n ");        string myString2 = "1234";           for (int i = 0; i < 1000000; i++)       {                 myint = Int32.Parse(myString2);   }          Console.Write(myint + "/r/n ");      Console.Write(System.DateTime.Now.ToString() + "  " + System.DateTime.Now.Millisecond.ToString() + " ");     string myString3 = "1234";          for (int i = 0; i < 1000000; i++)     {                  Int32.TryParse(myString3, out myint);      }           Console.Write(myint + "/r/n ");     Console.Write(System.DateTime.Now.ToString() + "  " + System.DateTime.Now.Millisecond.ToString() + "/r/n "); 

我們讓3個方法執行100萬次轉換毫秒差異:

為了準確多做幾次測試:

第二次

第三次

第一次第二次第三次
Convert.ToInt32()532-204=3281163-750=413782-469=313
Int32.Parse()844-532=312360-63=2971094-782=312
Int32.TryParse()1141-844=297657-360=297375-94=281

其實我們可以得出結論:

3個方法幾乎沒有差異! 如果真要追求完美那么性能的差異是:Int32.TryParse()優于Int32.Parse()優于Convert.ToInt32()。 所以個人建議:.NET1.1下用Int32.Parse();.NET2.0用Int32.TryParse()。

那么為什么會這樣呢? 其實這些數據不是偶然的,因為: Convert.ToInt32 會把最終的解析工作代理給 Int32.Parse; Int32.Parse 會把最終的解析工作代理給Number.ParseInt32; Int32.TryParse 會把最終的解析工作代理給Number.TryParseInt32。

至于其他進制的轉換請參考MSDN。重載參數即可!

2.Split的3種用法

我們可以把12 33 456 12342 拼起來就是一個字符,因為很多時候我們覺得處理只有幾個組的時候用數組很麻煩所以我們用“|”或者“,”等等把他們拼起來在需要的時候用Split打散即可。//清清月兒 http://blog.csdn.net/21aspnet/

下面列舉一些用法,不做性能分析了。

方法一:

static void Main(string[] args)  {              string aa = "1234,234523,4324,324";     string[] cc = aa.Split(new char[] { ',' });         foreach (string bb in cc)           {                         Console.Write(bb + "/r/n ");      }            }

方法二:

string aa = "1234,234523,4324,324";string[] str = aa.Split(',');    foreach (string bb in str)  {                    Console.Write(bb + " /r/n");}

方法三:

static void Main(string[] args) {                  string a = "1,2,3,4,5,6,7,8,9";      string b = ",";              string[] c = Split(a, b);     foreach (string bb in c)              {                          Console.Write(bb + " /r/n");      }        }     public static string[] Split(string input, string pattern)   {                   string[] arr = System.Text.RegularExpressions.Regex.Split(input, pattern);                   return arr;  }    

實現把文章按空格打散:

public static void Main ()  {              string a="While laughter is is very aerobic activity engages every single organ system";      string b=" ";        string []c=TestDoWhile.Split(a,b);      foreach(string bb in c)      {          Console.Write(bb+" /r/n");      }}public static string[] Split(string input,string pattern){      string[] arr = System.Text.RegularExpressions.Regex.Split(input,pattern);                 return arr;     } 

3.@"abc"和"abc"區別在那里 @"abc"和"abc"沒有什么區別

不過@是忽略轉義字符的! 比如 "abc/n" 輸出 abc 并加個換行 但是 @"abc/n" 輸出 abc/n 無換行! 取消轉義

比如你想將 C:/windows/system 這個字符串賦值給 str

一般情況下要: string str = "C://windows//system";

因為在C#中,// 才會被轉義成一個 / 又例如/n就是換行符

而加入@,就可以這樣:

string str = @"C:/windows/system";

4.保留2位有效小數及四舍五入 這又是一個經常遇到的問題。

保留2位有效小數(和保留N位一樣的參數不同而已):

         static void Main()         {             Double a = 12.345678;             Console.Write(Math.Round(a,2));         }

四舍五入:

static void Main() {      Double a = 12.345678;//是要四舍五入的數      Console.Write((a*10000+0.5)/10000); }

5.url傳遞中文的解決方案

1.設置web.config文件。 <system.web> ...... <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" /> ...... </system.web>

2.傳遞中文之前,將要傳遞的中文參數進行編碼,在接收時再進行解碼。 >> 進行傳遞 string Name = "中文參數"; Response.Redirect("B.aspx?Name="+Server.UrlEncode(Name)); >> 進行接收 string Name = Request.QueryString["Name"]; Response.Write(Server.UrlDecode(Name));

3.如果是從 .HTML 文件向 .Aspx 文件進行傳遞中文參數的話(即不從后臺用 Redirect()方法進行 Url 轉換)。一樣要將傳遞的中文參數進行編碼,在接收時再進行解碼。 >> 進行傳遞 <script language="javaScript"> function GoUrl() { var Name = "中文參數"; location.href = "B.aspx?Name="+escape(Name); } </script> <body onclick="GoUrl()"> >> 進行接收 string Name = Request.QueryString["Name"]; Response.Write(Server.UrlDecode(Name));

一般來說。設置web.config文件就可以了。但是如果你用 Javascript 調用 webservice 方法的話(往webservice里面傳遞中文參數)。設置 web.config 文件好象無效。

6.把123456789轉換為12-345-6789的3種方法方法一:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美日韩精品久久| 日本欧美在线视频| 92国产精品视频| 91av成人在线| 欧美极度另类性三渗透| 国产精品一久久香蕉国产线看观看| 日韩电视剧在线观看免费网站| 国产精品久久久久久久一区探花| 色樱桃影院亚洲精品影院| 国产精品69久久久久| 欧美一区二粉嫩精品国产一线天| 午夜伦理精品一区| 成人免费看吃奶视频网站| 青草成人免费视频| 精品国内产的精品视频在线观看| 亚洲精品久久久一区二区三区| 亚洲黄色免费三级| 久久亚洲一区二区三区四区五区高| 青草青草久热精品视频在线网站| 中文字幕视频在线免费欧美日韩综合在线看| 91国语精品自产拍在线观看性色| 欧美精品videosex性欧美| 成人黄色在线免费| 黄色一区二区在线观看| 5278欧美一区二区三区| 久久男人av资源网站| 国产视频自拍一区| 久久久久久久久久久亚洲| 亚洲成人免费网站| 欧美成人精品在线视频| 26uuu另类亚洲欧美日本老年| 久久精品视频免费播放| **欧美日韩vr在线| 国产成人一区二区| 国产精品午夜一区二区欲梦| 日本亚洲精品在线观看| 揄拍成人国产精品视频| 精品国产乱码久久久久久婷婷| 日韩中文字幕久久| 国产精品视频导航| 欧美日韩第一视频| 精品毛片三在线观看| 欧美成人激情图片网| 97超碰国产精品女人人人爽| 久久久久久久久久国产| 最近2019年手机中文字幕| 狠狠色狠色综合曰曰| 欧美一级片在线播放| 欧美日韩国产二区| 91在线高清免费观看| 亚洲v日韩v综合v精品v| 不用播放器成人网| 亚洲аv电影天堂网| 国内精品久久久| 亚洲成人av在线播放| 亚洲成人精品久久久| 日韩精品免费视频| 亚洲精品之草原avav久久| 亚洲欧美一区二区三区久久| 欧美激情视频网站| 中文字幕日韩欧美| 色悠悠国产精品| 欧美精品第一页在线播放| 精品动漫一区二区三区| 亚洲人成电影网站色…| 91香蕉嫩草神马影院在线观看| 欧美日韩成人黄色| 国产一区二区三区视频在线观看| 久久久国产视频| 日韩女在线观看| 91中文字幕在线观看| 亚洲第一av网站| 亚洲精品99久久久久| 亚洲经典中文字幕| 亚洲成人av片在线观看| 91精品国产91久久久久久吃药| 国产精品第七影院| 日韩精品免费电影| 久久精品国产一区二区电影| 欧美色视频日本版| 日韩av网站大全| 高清一区二区三区日本久| 日韩在线观看免费网站| 久久久国产91| 中文字幕日韩在线观看| 欧美人与性动交| 最近2019中文字幕一页二页| 97视频在线观看播放| 亚洲人a成www在线影院| 97成人精品视频在线观看| 隔壁老王国产在线精品| 久久精品亚洲94久久精品| 亚洲一区二区三区毛片| 国产日韩专区在线| 在线色欧美三级视频| 中文字幕欧美日韩在线| 成人免费xxxxx在线观看| 欧美性做爰毛片| 精品亚洲男同gayvideo网站| 日韩精品极品在线观看| 欧美韩国理论所午夜片917电影| 色综合色综合网色综合| 国产欧美一区二区三区在线看| 欧美一区二区视频97| 日韩av在线免费观看一区| 亚洲黄色www网站| 精品国产视频在线| 91av在线免费观看视频| 国产成人免费av电影| 日韩免费观看高清| 国产女人精品视频| 日本久久久久久久| 7m第一福利500精品视频| 国产精品嫩草影院久久久| 色播久久人人爽人人爽人人片视av| 91国产美女在线观看| 亚洲欧美成人精品| 俺去亚洲欧洲欧美日韩| 91国自产精品中文字幕亚洲| 亚洲伊人第一页| 午夜精品国产精品大乳美女| 91精品国产综合久久香蕉| 欧美亚洲日本网站| 日韩在线观看免费全集电视剧网站| 国产精欧美一区二区三区| 97久久精品人搡人人玩| 欧美日韩裸体免费视频| 91日本在线观看| 国产精品极品在线| 国产精彩精品视频| 亚洲四色影视在线观看| 亚洲国产天堂久久国产91| 国产精品亚洲第一区| 日韩h在线观看| 欧美裸体xxxx极品少妇软件| 欧美丝袜一区二区| 亚洲嫩模很污视频| 国产精品久久电影观看| 成人黄色短视频在线观看| 日韩中文字幕网址| 成人a级免费视频| 成人精品视频99在线观看免费| 久久久国产一区| 欧美极品第一页| 欧美亚洲国产视频| 欧美最顶级的aⅴ艳星| 亚洲三级av在线| 精品亚洲aⅴ在线观看| 亚洲专区国产精品| 免费97视频在线精品国自产拍| 国产精品午夜国产小视频| 亚洲国产欧美日韩精品| 69av视频在线播放| 日本中文字幕久久看| 久久精品国产亚洲精品2020| 亚洲第一区中文字幕| 日韩一区二区三区在线播放| 欧美国产日本在线| 亚洲欧美成人一区二区在线电影| 国产成人综合一区二区三区| 亚洲色图17p| 亚洲成人在线网| 91精品国产91久久久久久最新| 色综合天天狠天天透天天伊人|