A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 熊鑫 中级黑马   /  2013-4-19 15:51  /  1779 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

string类型的字符串可以当做是一个char类型的数组么?可以的话怎么写代码

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

11 个回复

倒序浏览
= = !等答案
回复 使用道具 举报
string类型是可以被当做一个char类型的数组:比如
  1. string input = "Hello,world!";//这个input就可以看做是一个有11个元素的char数组
  2. Console.WriteLine(input[0]);//输出的就是H,以此类推
复制代码

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
你大概可以这么理解,但从概念和实质上说是不同的.简单点说,String是一个对象,而对象不等同于字符串或字符数组,之所以会有把字符串赋值给string,是因为string有接受该参数的构造方法,.而字符数组没有构造函数,仅可以赋值.
回复 使用道具 举报
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

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
string类型本质就是一个char类型的数组,但这个char类型数组是只读的,
回复 使用道具 举报
王赟 中级黑马 2013-4-19 17:15:29
7#
string本质上来说就是连串有顺序的字符集合。简单来说string就是char[]。而在.NET中string被赋予了类的概念。
回复 使用道具 举报
张松 中级黑马 2013-4-19 21:22:28
8#
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);


           

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
这么理解比较局限吧。如果一个字符串 string str=“abc”,那我们如果想输出其中的一个字符的话,的确可以。例如输出b那就是输出str[1],这样可以,但是存在一个问题,就是你没法直接修改这个字符串,如果你想把字符串abc改写成abd的话,你就直接把str[2]=‘d’,这就是错的。需要把它改写成一个真正的字符数组,然后才能将其改动,然后再改回来。这样才OK。楼上说的只读 意思基本正确。
回复 使用道具 举报
  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:08 编辑

我还是初学者,所以我用截取Substring的方式来把String 变成 char数组 ,希望对你有点帮助
我把代码放在下面一个帖子了!!刚才忘记提交代码了
回复 使用道具 举报
  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();
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马