C#:String类型中的CharAt
今天也不知哪根筋搭错了,混乱的记忆中居然显示C#中的string拥有CharAt()方法。唉,不得不说,我把java中的这个用法代入到C#里面了。
证明没有之后,脑袋的思维严重受挫,呵呵。我做事情,有点固执,不达目的不罢休,既然C#里面没有CharAt()方法,那我就给他编一个。
C#中有一个:扩展方法。
我就用这个方式给string自编自造了一个CharAt()方法出来,代码如下:
1 using System; 2 3 namespace zuo_Company{ 4 5 public class TestMain{ 6 static void Main(){ 7 string str = "abcdefg"; 8 string n_str = str.CharAt(str.Length-1); 9 Console.WriteLine(n_str); 10 } 11 } 12 13 public static class CharAtExtention{ 14 public static string CharAt(this string s,int index){ 15 if((index >= s.Length)||(index<0)) 16 return ""; 17 return s.Substring(index,1); 18 } 19 } 20 }
在制作这个方法时,考虑了一些可能发生的事情。比如超出了整个字符串的长度就无法进行提取操作,当然小于0也是不可能被执行的。
string 转换成 Char[]
string ss = "abcdefg";
char[] cc = ss.ToCharArray();
Char[] 转换成string
string s = new string(cc);
此外,byte[] 与 string 之间的装换
byte[] bb = Encoding.UTF8.GetBytes(ss);
string s = Encoding.UTF8.GetString(bb);
下面我们利用 StringBuilder 来进行数组 与 string 间的转换 , 很简单,代码如下
using System.Text;
StringBuilder sb = new StringBuilder();
foreach(char c in cc)
{
sb.Append(c);
}
string s = sb.ToString();
StringBuilder 的 Append 方法支持多种参数,所以数组转换成string基本上都可以用它。
另外 string[] 转换成string,.Net框架提供了一个使用的方法
string strOr = "OR";
string result = string.Concat(new string[]{" A ",strOr," B ",Environment.NewLine," C ",strOr," D "});