黑马程序员技术交流社区

标题: 关于string类型 [打印本页]

作者: 熊鑫    时间: 2013-4-19 15:51
标题: 关于string类型
string类型的字符串可以当做是一个char类型的数组么?可以的话怎么写代码

作者: HM邱刚权    时间: 2013-4-19 15:56
= = !等答案

作者: 陈帅    时间: 2013-4-19 16:02
string类型是可以被当做一个char类型的数组:比如
  1. string input = "Hello,world!";//这个input就可以看做是一个有11个元素的char数组
  2. 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
  1. class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             string str="asdfg";
  6.            char[] chs=str.ToCharArray();
  7.            for (int i = 0; i < chs.Length; i++)
  8.            {
  9.                Console.WriteLine(chs[i]);
  10.            }
  11.            Console.ReadKey();
  12.         }
  13.     }
复制代码
系统内置方法ToCharArray();即可实现。
作者: 林东枫    时间: 2013-4-20 10:05
本帖最后由 林东枫 于 2013-4-20 10:08 编辑

我还是初学者,所以我用截取Substring的方式来把String 变成 char数组 ,希望对你有点帮助
我把代码放在下面一个帖子了!!刚才忘记提交代码了
作者: 林东枫    时间: 2013-4-20 10:06
  1. string str = "sfasfas";
  2.             char[ ] ch = new char [ 10];
  3.             for(int i=0 ;i<=str.Length-1;i++)
  4.             {
  5.                 //截取字符串中的每个字符,赋给字符串数组;
  6.                 ch[i] =char.Parse( str.Substring(i,1));
  7.             }
  8.             for (int i = 0; i <= str.Length - 1; i++)
  9.             {
  10.                 // 输出每个字符
  11.                   Console.Write(ch[i]+" ");
  12.             }
  13.             Console.ReadKey();
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2