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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© anyu 中级黑马   /  2012-11-10 00:08  /  2954 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 anyu 于 2012-11-16 22:27 编辑

看视频里面,有个颠倒位置的算法。
比如:string[] str = { "张三", "李四", "王五", "赵六" };
            for (int i = 0; i < str.Length / 2; i++)
            {
                string temp ="";
                temp = str;
                str = str[str.Length - 1 - i];
                str[str.Length - 1 - i] = temp;
            }
            for (int i = 0; i < str.Length; i++)
            {
                Console.Write(str+" ");
            }
            Console.ReadKey();

然后老师说有一个Reverse()颠倒字符次序的函数,对于字符可以颠倒成功:
            string str = "itheima";
            char[] ch = str.ToCharArray();
            Array.Reverse(ch);
            Console.WriteLine(ch);      
上面的字符颠倒可以成功,如果颠倒数组类型为string或者int的数组,就会出现System.String[]或者System.Int32[],这个函数只能颠倒字符类型的数组吗?

评分

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

查看全部评分

7 个回复

倒序浏览
Array.Reverse()就是对一维数组进行反转的。
比如:
string[] str={"12","34","56","78"};
Array.Reverse(str);
str类型可以是字符串,字符或者int这些类型

评分

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

查看全部评分

回复 使用道具 举报
Array.Reverse()反转的参数类型是string,而要颠倒字符次序的字符串返回值String,应该不是对数组和其他类型来反转颠倒的

评分

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

查看全部评分

回复 使用道具 举报
Array.Reverse()是可以对string类型和int类型的数组进行翻转的,下面是我写的程序:
string[] str = { "你好","嘿嘿","我好"};
            Array.Reverse(str);
            for (int i = 0; i < str.Length; i++)
            {
                Console.WriteLine(str[i]);
            }

必须遍历str才能输入翻转后的结果(int的同理),不知道为什么Console.WriteLine(str);得到的结果是System.String[],继续关注。。。

评分

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

查看全部评分

回复 使用道具 举报
必须遍历str才能输入翻转后的结果(int的同理),不知道为什么Console.WriteLine(str);得到的结果是System.String[],继续关注。。。


关于上面的问题,是因为 Console.WriteLine() 或者 Console.Write() 输出的是一个对象 的 ToString()结果
比如:
int i =10;
  Console.Write(i);  此时输出的是 i 变量的 ToString() 结果
同样,放在 数组对象 里,
  string[]  strs = {"hello","hi","world"};
Console.Write(strs); 此时输出的是 strs.ToString()结果,也就是 System.String[] ,因为strs是一个对象,不是数组的元素,所以并不会输出数组的元素  
要想输出数组元素,还是得遍历输出元素。这就是为什么 遍历的时候我们 Console.Write(strs[i]) 参数里得填strs[i] 的原因

评分

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

查看全部评分

回复 使用道具 举报
王继光 发表于 2012-11-10 10:40
必须遍历str才能输入翻转后的结果(int的同理),不知道为什么Console.WriteLine(str);得到的结果是System.St ...

哦,原来是这样,多谢了···
回复 使用道具 举报
黄冉 发表于 2012-11-10 06:52
Array.Reverse()就是对一维数组进行反转的。
比如:
string[] str={"12","34","56","78"};

str是字符串类型好不,里面的东西也是字符串类型

评分

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

查看全部评分

回复 使用道具 举报
黄冉 中级黑马 2012-11-12 06:01:08
8#
郭会茹 发表于 2012-11-11 22:32
str是字符串类型好不,里面的东西也是字符串类型

呵呵,你没理解我的意思,我意思是str也可以是字符或者int类型的数组。我在这里定义的是字符串数组。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马