①Cannot implicitly convert type
'string' to 'char[]'
②Cannot implicitly convert type
'char' to 'string'
③Cannot implicitly convert type
'char[]' to 'string'
④Cannot implicitly convert type
'string[]' to 'char[][]'
①
'string' to 'char[]'
不能直接赋值,而是需要使用ToCharArray()
②
'char' to 'string'
不能直接赋值,而是需要使用ToString()
③
'char[]' to 'string'
不能直接赋值,本应该使用ToString()
但c#不支持'char[]' to 'string'
如此使用,string将返回 System.Char[]
这应该是一个bug
只能自己手动实现
string CharArrayToString(char[] s)
string str = "";
foreach (char c in s)
char temp = c;
str = str + temp.ToString();
return str;
【注】后来发现有一种更简单的方法
char[] charArray = {'a','b'};
print(new string(charArray));
【语法解释】
new是创建对象
string是要创建的对象的类型
(charArray)是在向构造函数传递参数
构造函数是 public String(char[] value);
这样就将char[]数组转换为了string
④ 'string[]' to 'char[][]'
不能直接赋值,也没有ToStringArray()方法
只能自己手动实现
char[][] StringArrayToCharJaggedArray(string[] words)
char[][] word=new char[words.Length][];
for(int i=0;i<words.Length;i++)
word[i]=new char[words[i].Length];
word[i]=words[i].ToCharArray();
return word;
字符串是只读类型,一经初始化,不可对原字符串修改
如可修改,也只是借用了StringBuilder或其他方法,重新创建了一个对象,在背后进行了处理、
如果对字符串中的字符进行修改,会报错
Property or indexer 'string.this[int]' cannot be assigned to -- it is read only
int i;
MessageBox.Show(i); //这时会提示错误无法从“int”转换为“string”,那是因为messagebox的参数只能是“string”类型,所以要对i进行转换,成为string类型
MessageBox.Show(i.tostring); //这时会提示错误无法从“方法组”转换为“String”,那是因为tostring是个方法,要在tostring后面加
1. 字符串变成char数组,字符数组变成字符串
*.string可以看作char的只读数组。String是字符串,char是字符数组,举例:
字符串大小写转换
忽略字符串大小写
需要注意的是,在转换过程中,会创建新的对象并分配新的内存,因此如果在处理大量数据时,需要谨慎使用这些转换操作。之间的相互转换来实现字符串和字符数组之间的转换。在 C# 中,可以通过。
1.string转换为char[]:char[] string.ToCharArray();
static void Main(string[] args)
string str = "abcdef";
char[] chs = str.ToCharArray();//字符串可以看做是只读的字符数组,将其转变为真正的字符数组后,即可对其进行编辑
Console.WriteLine(chs[2]);
string str = "hello world";
const char *p = str.data(); //加const 或用 char *p = (char*)str.data(); 的形式...
char数组要转换成string可没想象的那么容易。需要使用到System.Text.StringBuilder!实例如下:char[] temp={a,b,c};System.Text.StringBuilder sb = new System.Text.StringBuilder();sb.Append(temp);string target=sb.ToString();反过来就比较容
static void Main()
byte[] array = UTF8Encoding.UTF8.GetBytes(Console.ReadLine());//将获取到的字符串转换为字符数组
foreach (byte b in array)
Console.Write("0