反转单词(C#实现)

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;

}

posted @ 2010-09-13 10:47  purplesun  阅读(384)  评论(0编辑  收藏  举报