2013-12-14 212 views
0

原字符串爲「Hello World」的字符串反轉:反轉字的唯一位置字符串在C#

輸出應該是「世界你好」

什麼是優化的方式來做到這一點在C#?

請給我建議任何現有的鏈接,如果我缺少

+2

你目前的做法? –

+0

我正在接受程序來完成字符串反轉信,我不想這樣做...我可以發佈例如,如果你想 –

回答

1

我會分裂的字樣句子(它們之間的空間):

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

你可以優化這個與任何句子一起工作通過將words從最後一個元素循環到第一個元素來循環任意數量的單詞。

我已經重新分配了新的字符串回helloString(原來),因爲我認爲這是你想要的基礎上的問題。

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

OR(更好的分流下面,如果你AR數據的不知道)

var s = "Hello world"; 
var result = String.Join(" ", Regex.Split(s, @"\s").Reverse()); 
-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 
+0

你確定這個'&='? –

+0

對不起,這是+ =,與VB.Net – Jade

+0

互換這最後會增加額外的空間。 –

0

試試這個代碼:

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

這對於一個句子中的三個或更多單詞不起作用。 –

+0

然後使用超過2個字的Foreach條件 –

+0

然後用該信息擴展您的答案。 –

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]+" "); 
    }