2014-01-16 67 views
0

我需要創建一個程序,它將讀取一行文字,其中的文字由空格和標點分隔,並以相反的順序顯示。文本行也可以包含數字,但如果是這樣,顯示的反向文本必須排除帶有文字的文字以相反順序排列的字符串

問題是,說明中說我只能使用.net庫中的基本功能和使用複雜功能 - 排序,搜索字符和類似的東西是嚴格禁止的。這意味着.Contains是不允許的。可以some1請幫助我,如何編寫使用基本功能?

例子銀河系Omega123,由於其偏遠性,紫色的菌株! --->遙遠!其應有的色,紫色菌株銀河

string reverseString = ""; 
     for (int j = separatedLine.Length -1; j >= 0; j--) 
     { 
      if (separatedLine[j].Contains('0') || separatedLine[j].Contains('1') || separatedLine[j].Contains('2') || separatedLine[j].Contains('3') || separatedLine[j].Contains('4') || separatedLine[j].Contains('5') || separatedLine[j].Contains('6') || separatedLine[j].Contains('7') || separatedLine[j].Contains('8') || separatedLine[j].Contains('9')) 
      { 
       separatedLine[j] = ""; 
      } 
      else 
      { 
       reverseString = reverseString + separatedLine[j]; 
      } 
     } 
     return reverseString; 
+3

_「必須用文字排除文字」_表示:必須用數字排除文字嗎?允許的方法是什麼? –

+1

是你的作業嗎?然後對不起,我們不會幫你的...你需要自己做... –

+0

類似於http://stackoverflow.com/questions/1009160/reverse-the-ordering-of-words- in-a-string?rq = 1 – Junaith

回答

0

典型溶液到拆分加入反轉部分:

// Put all possible separators into array 
    String[] parts = separatedLine.Split(new Char[] {' ', ',', ';'}); 
    // "," is a separator to use 
    return String.Join(",", parts.Reverse()); 

例如如果

separatedLine = "1 2;3,4"; the outcome is "4,3,2,1" 

如果你在使用分割只供,LINQ的等解決方案可能是一種 仿真

List<String> parts = new List<String>(); 
    StringBuilder part = new StringBuilder(); 

    foreach(Char ch in separatedLine) 
    // Put all possible separators into condition 
    if ((ch == ' ') || (ch == ',') || (ch == ';')) { 
     parts.Add(part); 
     parts.Length = 0; 
    } 
    else 
     part.Add(ch); 

    parts.Add(part); // <- Do not forget to add the last one 

    StringBuilder result = new StringBuilder(); 

    for (int i = parts.Count - 1; i >= 0; --i) { 
    if (i < parts.Count - 1) 
     result.Add(','); // <- Separator to use 

    result.Add(parts[i]); 
    } 

    return result.ToString(); 
+0

不能使用.split,但我會嘗試。謝謝 – fkr

1

對不起一切,我無法抗拒有樂趣在這裏使用LINQ,雖然問題只關於基本的.NET方法。因此,我不覺得做別人的作業。儘管如此,對於其他人來看這個問題可能還是有用的。

string text = "Here is 1234 number"; 
string output = string.Join(" ", text.Split(' ') 
            .Select(s => s.Any(c => Char.IsDigit(c)) 
                ? s : new string(s.Reverse().ToArray()))); 
// output is "ereH si 1234 rebmun" 
+0

不能使用.split – fkr