2017-10-04 57 views
-3

我必須重新排列句子中的單詞的任務向後,但我能夠做到這一點只爲第一個字母。例如:有趣的考試right.What我有,直到現在:追加到StringBuilder,而沒有任何剩餘

var sentance = Console.Readline().Split(' '); 
var rearrangedSentence = new StringBuilder(); 
    for(int i = 0,i<sentance.Lenght,i++) 
    { 
     rearrangedSentence.Append(sentance[i].Last());//this gives me "nmt" 
    } 

我的問題是如何使這個循環重複自己,而沒有什麼可留下。 任何幫助將大大appriciated :)

編輯:問題是

我的意思是,如果我有結果應該是一句「玩轉考試權」:nmtuahFxgeir。我們先來每個單詞追加導致「NMT」的最後一個字符,然後採取下一步的一個,並將其添加導致「nmtuah」等

+2

我對這個要求感到困惑。是「這是一個測試」=>「測試是這個」或=>「tset a si sihT」? – Fildor

+0

仔細看看這些變量(使用var將會讓你忘記它們中的內容)..當你不需要每個單詞來反轉它時,你都不希望它重複。如果我要這樣做,你會怎麼做?給你一批拼字遊戲的信件? – BugFinder

+0

非常不好的描述你的要求。 _「我只能做第一個字母。」_看起來你只是輸出每個單詞的最後一個字母,但是正向輸出。你實際需要什麼? –

回答

1

當您使用sentance[i].Last(),你只撿了最後數組的元素。

編輯:根據您的更新要求,您可以使用此代碼。

  //Get the sentence array 
      var sentence = Console.ReadLine().Split(' '); 
      var rearrangedSentence = new StringBuilder(); 

      //Get the length of longest word in array 
      int loopLength = sentence.OrderBy(n => n.Length).Last().Length; 


      int x = 0; 
      // Run for the length of longest word 
      for (int i = loopLength-1; i >=0 ; i--) 
      { 
       // need to pick up an element at every run for each element. 
       for (var j = 0; j < sentence.Length; j++) 
       { 
        //Picking the position of item to be picked up 
        int val = sentence[j].Length - (x + 1); 
        // If index not out of bounds 
        if(val >= 0 && val <= sentence[j].Length) 
        { 
         // Pick the character and append to stringbuilder. 
         rearrangedSentence.Append(sentence[j][val]); 
        } 
       } 
       // Next letter should be n-1, then n-2. 
       // Increase this. Val will decrease 
       x++; 
      } 

      Console.WriteLine(rearrangedSentence.ToString()); 


      Console.ReadLine(); 
+1

甚至有[Arrays.Reverse](https://msdn.microsoft.com/en-us/library/d3877932(v = vs .1px).aspx) – Fildor

+0

@Fildor是的,這也是一個選項,但是提問人想要用StringBuilder修復。此外,在Array.Reverse之後,將需要Array Join。 – Amit

+0

_「想用StringBuilder修復」_ - 我不確定他實際上100%是否知道他想要什麼。 – Fildor