现在的位置: 首页 > 综合 > 正文

反转单词(C#实现)

2013年07月29日 ⁄ 综合 ⁄ 共 1838字 ⁄ 字号 评论关闭

using System;
using System.Collections.Generic;

namespace ReverWords
{
    
class MainClass
    {
        
public static void Main(string[] args)
        {
            Console.WriteLine(ReverseWords(
"Hello World"));
            Console.Read();
        }
        
public static string ReverseWords(string array)
        {
             
if (string.IsNullOrEmpty(array))
             {
                  
throw new ArgumentException("");
             }
             
int arrLen = array.Length;
             
char[] strNew = new char[arrLen + 1];
             
             
//全部反转 
             for (int index = 0; index < arrLen; index++)
             {
                 strNew[index] 
= array[arrLen - 1 - index];
             }
             strNew[arrLen] 
= ' '//为了复原最后一个单词,添加一个辅助空格 
             int iStart = 0, iEnd = 0;
             
char tmpChar;+
             
//复原单词 
             for (int Index = 0; Index < arrLen + 1; Index++)
             {
                
//Index指向空格 
                if (strNew[Index] == ' ')
                {
                    iEnd 
= Index - 1;
                    
while (iStart < iEnd)
                    {
                        tmpChar 
= strNew[iStart];
                        strNew[iStart] 
= strNew[iEnd];
                        strNew[iEnd] 
= tmpChar;
                        iStart
++;
                        iEnd
--;
                    }
                        iStart 
= Index + 1;//跳过空格 
                }
                
else if (strNew[Index] == '!' | strNew[Index] == ',' | strNew[Index] == '.' | strNew[Index] == ';')
                {
                   iStart 
= Index + 1;//跳过标点 
                }
            }
            
//合成字符串 
            array = string.Empty;
            
for (int index = 0; index < strNew.Length - 1; index++)//去掉辅助的空格 
            {
               array 
+= strNew[index];
            }
            
return array;
       }
    }
}

抱歉!评论已关闭.