字符串反转:仅反转c#中字符串中单词的位置

时间:2013-12-14 11:49:25

标签: c#

原始字符串是“Hello World”

输出应该是“世界你好”

在c#中实现它的优化方法是什么?

如果我不在的话,请建议我现有的链接

5 个答案:

答案 0 :(得分:4)

var s = "Hello world";
var result = String.Join(" ", s.Split(' ').Reverse()));

或者(如果您不确定数据,请在下面更好地分开)

var s = "Hello world";
var result = String.Join(" ", Regex.Split(s, @"\s").Reverse());

答案 1 :(得分:1)

我会用句子(它们之间的空格)分割句子:

string[] words = helloString.Split(" ");
helloString = words[1] + " " + words[0];

您可以通过从最后一个元素到第一个元素循环遍历words来优化此项以处理包含任意数量单词的任何句子。

我已经将新字符串重新分配回helloString(原始字符串),因为我认为这是你想要的基于这个问题。

答案 2 :(得分:0)

试用此代码:

  string value = "Hello world";
  string firstvalue = value.Split(' ').First();
  string secvalue = value.Split(' ').Last();
  string value = secvalue + firstvalue;

答案 3 :(得分:0)

   static void Main(string[] args)
    {
        String str = "Hello World";
        String[] strNames = str.Split(' ');
        for(int i=strNames.Length-1;i>=0;i--)
        Console.Write(strNames[i]+" ");
    }

答案 4 :(得分:-1)

char[] Delimiter = new char[] { ' ' }
string[] t = string.split("Hello Wordl", Delimiter)
int lenS = t.Count;
string result = "";
for(int x =t-1; t > -1; t--)
{
  result += t[x] + " ";
}

//Used result now