2014-07-06 3 views
-9

문장을 대문자로 바꿔야하고 어떻게해야할지 모르겠다. 예를 들어 :케이스를 문자열로 대체하려면 어떻게해야합니까?

thequickbrownfoxjumpsoverthelazydog 

GoDyZaLeHtReVoSpMuJxOfNwOrBkCiUqEhT 

방법이 지금까지 내 코드입니다

Console.WriteLine("Please enter a sentence:"); 
     string text = Console.ReadLine(); 
     text = text.Replace(" ", ""); 
     char[] reversed = text.ToCharArray();//String to char 
     Array.Reverse(reversed);//Reverses char 
     new string(reversed);//Char to string 

     Console.WriteLine(reversed); 
     Console.ReadLine(); 

그 또한 숙제 작업의 일부로서 이유로 공백이 없음을 유의하시기 바랍니다 .

+0

? 이것은 다소 사소한 일이며 적어도 도움이되기 전에 보여줄 코드가 있어야합니다. –

+0

지금까지 어떤 노력이 있었습니까? –

+1

또한 케이스를 바꾸기 위해 어떤 근거를 사용하고 있습니까? –

답변

1

문자열을 뒤집을 필요가 없습니다. 문자열의 짝수 색인 문자를 대문자로 사용하십시오.

내 문화는 tr-TR이고이 String.ToUpper 방법의 작동 방식은 현재 스레드 문화에 따라 다릅니다. 이 예에서는 출력이 내 것과 다를 수 있습니다.

예 : LINQPad;

string s = "thequickbrownfoxjumpsoverthelazydog"; 
StringBuilder sb = new StringBuilder(); 
for (int i = 0; i < s.Length; i++) 
{ 
    if (i % 2 == 0) 
    { 
     sb.Append(s[i].ToString().ToUpper()); 
    } 
    else 
    { 
     sb.Append(s[i].ToString()); 
    } 
} 
sb.ToString().Dump(); 

출력됩니다.

ThEqUiCkBrOwNfOxJuMpSoVeRtHeLaZyDoG 
+0

교대로 작동했습니다. 감사합니다. 또한 반전은 숙제의 일부분이었습니다 – musiclover

+0

@musiclover [문자열을 뒤집는 최선의 방법] (http://stackoverflow.com/questions/228038/best-way-to-reverse-a-string)을 살펴보십시오. –

+0

나는 벌써했다;) thanks :) – musiclover

2

문자열을 변경할 수 없으므로 char []로 변환해야합니다.

char[] characters = text.ToCharArray(); 
for (int i = 0; i < characters.Length; i+=2) { 
    characters[i] = char.ToUpper(characters[i]); 
} 
text = new string(characters); 
0

LINQ 또 다른 가능한 해결책은 다음과 같이 하나 개의 라인으로 수행 할 수

string s = "thequickbrownfoxjumpsoverthelazydog"; 
string result = new String(s 
          // take each character 
          .ToCharArray() 
          // convert every character at even index to upper 
          .Select ((character, index) => (index % 2) == 0 ? Char.ToUpper(character) : character) 
          // back to array in order to create a string 
          .ToArray()); 
Console.WriteLine(result); 

출력은 :

ThEqUiCkBrOwNfOxJuMpSoVeRtHeLaZyDoG 

이 솔루션은 현재 액세스하기 위해 indexed LINQ Select clause 사용 색인 및 현재 투영 된 값이 포함됩니다.

0

한 라이너 :

new string(myString.Select((c, i) => i % 2 == 0 ? char.ToUpper(c) : c).ToArray()) 

연장 방법 : 당신이 시도 무엇

public static string AltCase(this string s) 
{ 
    return new string(s.Select((c, i) => i % 2 == 0 ? char.ToUpper(c) : c).ToArray()); 
} 
관련 문제