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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郗振龙 中级黑马   /  2012-5-3 09:51  /  2838 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

怎样惊醒多个字符串的反转呢 如 "abc " def" hij"

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

10 个回复

正序浏览
这个视频里面有,先把n个字符串放在一个数组里,先定义一个string类型数组:
string [] str = {"字符串1",“字符串2”,"字符串3",........};
然后用两个for循环,第一个进行反转,第二个用来遍历输出:
            for (int i = 0; i < str.Length / 2; i++)
            {
                temp = str[i];
                str[i] = str[str.Length - 1 - i];
                str[str.Length - 1 - i] = temp;
            }
第一个for循环主要注意的就是它的反转交换次数,三个字符串就交换第一个跟最后一个,四个就交换前后两个跟中间两个,不管有多少个,都交换str.Length / 2次。
            for (int i = 0; i < str.Length; i++)
            {
                Console.WriteLine(str[i]);
            }
第二个for循环用来交换完挨个输出,就这样。

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
你可以使用charArray直接翻转
例如:
char[] charArray = @"""abc""def""hij""".ToCharArray();
            Array.Reverse(charArray);
            Console.WriteLine(new string(charArray));
            Console.ReadKey();

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
字符数组
回复 使用道具 举报
提一个比较直观但效率不是很高的办法:
创建一个栈,将字符一个个压入,然后再一个个弹出,就反转了。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
你们可能没理解LZ说的,他说的应该是把数组元素的值进行交换  第i个和第length-i-1 个进行交换  而不只是反转输出一下 因为要进行 Array.Length/2 次反转,这个不难理解吧,奇数个元素的话,中间一个是不需要反转的,偶然当然是除以2了。交换二个变量的值就是引入第三个变量当中介变量1赋值给变量3,变量2赋值给变量1,变量3(存储的是变量1的值)再赋值给变量2 下面是代码 看看吧:
  1. string[] strArray = { "A", "BB", "CCC", "DDDD", "EEEEE", "FFFFFF", "GGGGGGG" };
  2.             string temp;

  3.             for (int count = 0; count < strArray.Length / 2; count++)
  4.             {
  5.                 //交换
  6.                 temp = strArray[count];
  7.                 strArray[count] = strArray[strArray.Length - count - 1];
  8.                 strArray[strArray.Length - count - 1] = temp;

  9.             }

  10.             for (int count = 0; count < strArray.Length; count++)  //这里遍历输出一下就行了
  11.             {
  12.                 Console.Write(strArray[count] + " ");   

  13.             }

  14.                 Console.ReadKey();
复制代码
最后的输出格式,看个人习惯吧,横着 竖着输出,只要你能明白其中的意思就行了,


评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
string strArr ={"abc" ,"def","h[] strArrij" };

for(int i = 0; i < strArr.Length/2 - 1; i++)
{
  string temp;
  temp=strArr[i];
strArr[i]=strArr[strArr.Length-1-i];
strArr[strArr.Length-1-i]=temp;
}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
先把这些数据读入一个数组,循环遍历后进行反序排列!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
非常小可 来自手机 中级黑马 2012-5-11 03:54:50
板凳
声明一个字符串数组按指定格式分隔然后从后往前遍历每一个字符串输出就可以了

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
首先把多个字符串分割放到一个数据里面,在用for循环倒叙输出出来就行了

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您能不能把你的问题描述的再清晰些
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马