★搜Asp.net★(www.soAsp.net),为专业技术文档网站。
包括Asp.net开发技术文档·C#开发技术文档·Access/SQL Server数据库开发技术文档·VB.NET开发技术文档。
还包括·项目实战经验总结·开发经验技巧总结·项目开发心得。
C#优化字符串操作(经验之谈二)

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种方法

方法一:

C# CODE
string a = "123456789"; a = int.Parse(a).ToString("##-###-####"); Console.Write(a);


方法二:

C# CODE
string a = "123456789"; a = a.Insert(5, "-").Insert(2, "-"); Console.Write(a);


方法三:

C# CODE
using System;using System.Collections.Generic;using System.Text;using System.Text.RegularExpressions;namespace ConsoleApplication1{ class Program { static void Main() { string a = "123456789"; Regex reg = new Regex(@"^(d{2})(d{3})(d{4})$"); a = reg.Replace(a, "$1-$2-$3"); Console.Write(a); } }}


7.交换两个指定位置字符的4种方法

方法一:

C# CODE
static void Main() { string s = "123456789"; SwapChar(ref s, 3, 6); Console.Write(s.ToString()); } static void SwapChar(ref string s, int i1, int i2) { char temp = s[i1]; char temp1 = s[i2]; s = s.Remove(i1, 1).Insert(i1, temp1.ToString()); s = s.Remove(i2, 1).Insert(i2, temp.ToString()); }


方法二:

C# CODE

static void Main() { string s = "123456789"; //SwapChar(s, 3, 6); Console.Write(SwapChar(s, 3, 6).ToString()); } static string SwapChar(string s, int p1, int p2) { if ((p1 == p2) || ((p1 < 0) || (p2 < 0))) return s; if ((p1 >= s.Length) || (p2 >= s.Length)) return s; char[] vChars = s.ToCharArray(); vChars[p1] = (char)(vChars[p2] | (vChars[p2] = vChars[p1]) & 0); return new string(vChars); }

方法三:

C# CODE
static void Main() { string s = "123456789"; Console.Write(SwapChar(s, 3, 6).ToString()); } public static string SwapChar(string str, int a, int b) { char[] newStr = str.ToCharArray(); newStr[a] = str[b]; newStr[b] = str[a]; return new string(newStr); }


方法四:

C# CODE
using System;using System.Collections.Generic;using System.Text;using System.Text.RegularExpressions;namespace ConsoleApplication1{ class Program { static void Main() { string s = "123456789"; Console.Write(SwapChar(s, 3, 6).ToString()); } static string SwapChar(string s, int p1, int p2) { if (p1 > p2) ...{ int p = p1; p1 = p2; p2 = p; } return Regex.Replace(s, "^(.{" + p1 + "})(.)(.{" + (p2 - p1 - 1) + "})(.)(.*)$", "$1$4$3$2$5"); } }8. “%10”的妙用
C# CODE
static void Main() { Random r = new Random(); Console.WriteLine(r.Next() % 10);//1-9 Console.WriteLine(r.Next() % 10); Console.WriteLine(r.Next() % 10); Console.WriteLine(r.Next() % 10); Console.WriteLine(r.Next() % 10); Console.WriteLine(r.Next() % 10); Console.WriteLine(r.Next() % 10); Console.WriteLine(r.Next() % 10); Console.WriteLine(r.Next() % 10); }

(将输出 1-9 的整数,图略)

9.输出21个AAAAAAAAAAAAAAAAAAAAA的巧妙做法
new构造器的理解
如果要你创建一个由21个"A"字符构成的字符串,你会怎么做?
C# CODE
string str = "AAAAAAAAAAAAAAAAAAAAA";//老实型string str = new string('A', 21);//简单聪明


10.compare()与compareTo()方法

一样的功能,只是两个接口的两个方法而已。
compare是Comparatable的方法,compareTo是Comparator的方法。