2017-04-12 88 views
-2

例如,我的输入是my name is abcd
我需要显示为dcba si eman ym
我已经做了下面这给人一种输出为abcd is name my
但不知道下一步该怎么做串扭转C#

static void Main(string[] args) 
{ 
    Console.WriteLine("Enter a string: "); 
    string[] input = Console.ReadLine().Split(' '); 

    for (int i = input.Length-1; i >=0; i--) 
    { 
     Console.Write(input[i]+" "); 
    } 
    Console.ReadKey(); 
} 
+2

如果您要反转字符串,将字符串拆分为“单词”的目的是什么?只需调用[ToCharArray()](https://msdn.microsoft.com/en-us/library/system.string.tochararray.aspx)字符串(这会给你的字符),然后遍历这些字符。 –

回答

0

试试这个,这将很好地工作。我认为这是你一直在寻找的!

string Str, reversestring = ""; 
     int Length; 
     Console.Write("Enter A String : "); 
     Str = Console.ReadLine(); 
     Length = Str.Length - 1; 
     while (Length >= 0) 
     { 
      reversestring = reversestring + Str[Length]; 
      Length--; 
     } 
     Console.WriteLine("Reverse String Is {0}", reversestring); 
     Console.ReadLine(); 

我的小提琴例如:Reverse with Words and Text

0

你不需要.Split(' ')string[] input = Console.ReadLine().Split(' ');

你可以简单地阅读string input = Console.ReadLine();整行则扭转整个线。

如果你看看下面的链接,它提供了两个选项。

  1. 通过从端部到开始和输出它的每一字符逆向使用Array.Reverse
  2. 循环整个字符串。

https://www.dotnetperls.com/reverse-string#d

1

您可以使用API​​ - Array.Reverse

char[] charArray = input.ToCharArray(); 
Array.Reverse(charArray); 
reversed = new string(charArray); 
0

你的代码做的是倒车用文字初始字符串,像这样:

my name is abcd --> abcd is name my 

要改变这一点,你需要阅读整个字符串和使用它作为字符数组:

var input = Console.ReadLine(); 
var sb = new StringBuilder(input.Length); 
for (var i = input.Length - 1; i >= 0; --i) 
{ 
    sb.Append(input[i]); 
} 
Console.WriteLine(sb.ToString()); 

您也可以使用Array.Reverse方法:

var input = Console.ReadLine(); 
var charArray = input.ToCharArray(); 
Array.Reverse(charArray); 
var reversed = new string(charArray); 
Console.WriteLine(reversed);