黑马程序员技术交流社区
标题:
关于string类型
[打印本页]
作者:
熊鑫
时间:
2013-4-19 15:51
标题:
关于string类型
string类型的字符串可以当做是一个char类型的数组么?可以的话怎么写代码
作者:
HM邱刚权
时间:
2013-4-19 15:56
= = !等答案
作者:
陈帅
时间:
2013-4-19 16:02
string类型是可以被当做一个char类型的数组:比如
string input = "Hello,world!";//这个input就可以看做是一个有11个元素的char数组
Console.WriteLine(input[0]);//输出的就是H,以此类推
复制代码
作者:
645420297
时间:
2013-4-19 16:09
你大概可以这么理解,但从概念和实质上说是不同的.简单点说,String是一个对象,而对象不等同于字符串或字符数组,之所以会有把字符串赋值给string,是因为string有接受该参数的构造方法,.而字符数组没有构造函数,仅可以赋值.
作者:
张林杰
时间:
2013-4-19 16:12
string可以看做是char类型的只读数组(之所以只读,因为字符串的不可变性),意思是string可看成数组,它的每个元素都是字符(即char)类型,既然是数组,当然可以通过数组名.Length来获得数组的长度,也可以调用数组成员。比如: string count 相当于 char[] count,(只是相当,并不一样,因为你不可以改变字符串) 举个例子:string count="Hello",那它就相当于char[] count={'H','e','l','l','o'},那count.Length=5,count[0]='H' 。
详细的你可以去这个帖子看看,我回答过的
http://bbs.itheima.com/forum.php ... mp;page=1#pid294132
作者:
陈行
时间:
2013-4-19 16:56
string类型本质就是一个char类型的数组,但这个char类型数组是只读的,
作者:
王赟
时间:
2013-4-19 17:15
string本质上来说就是连串有顺序的字符集合。简单来说string就是char[]。而在.NET中string被赋予了类的概念。
作者:
张松
时间:
2013-4-19 21:22
string可以看做是char的只读数组。
string str = "abcdefg";
str[0] = 'b';//出错以为是看做char的只读数组,不可改变
char c = str[5];
c = 'x';
Console.WriteLine(c);
string str = "abcdef";
//第一步 将字符串这个变量转换成char类型的数组 使用ToCharArray()这方法
char[] c = str.ToCharArray();
//把第一个元素改为b
for (int i = 0; i < c.Length; i++)
{
c[0] = 'b';
}
//把char类型的数字 转换成字符串 用 newstring();
str = new string(c);
Console.WriteLine(str);
作者:
王德钊
时间:
2013-4-19 21:32
这么理解比较局限吧。如果一个字符串 string str=“abc”,那我们如果想输出其中的一个字符的话,的确可以。例如输出b那就是输出str[1],这样可以,但是存在一个问题,就是你没法直接修改这个字符串,如果你想把字符串abc改写成abd的话,你就直接把str[2]=‘d’,这就是错的。需要把它改写成一个真正的字符数组,然后才能将其改动,然后再改回来。这样才OK。楼上说的只读 意思基本正确。
作者:
郑丹丹1990
时间:
2013-4-19 22:11
class Program
{
static void Main(string[] args)
{
string str="asdfg";
char[] chs=str.ToCharArray();
for (int i = 0; i < chs.Length; i++)
{
Console.WriteLine(chs[i]);
}
Console.ReadKey();
}
}
复制代码
系统内置方法ToCharArray();即可实现。
作者:
林东枫
时间:
2013-4-20 10:05
本帖最后由 林东枫 于 2013-4-20 10:08 编辑
我还是初学者,所以我用截取Substring的方式来把String 变成 char数组 ,希望对你有点帮助
我把代码放在下面一个帖子了!!刚才忘记提交代码了
作者:
林东枫
时间:
2013-4-20 10:06
string str = "sfasfas";
char[ ] ch = new char [ 10];
for(int i=0 ;i<=str.Length-1;i++)
{
//截取字符串中的每个字符,赋给字符串数组;
ch[i] =char.Parse( str.Substring(i,1));
}
for (int i = 0; i <= str.Length - 1; i++)
{
// 输出每个字符
Console.Write(ch[i]+" ");
}
Console.ReadKey();
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2