2009-10-07 3 views
2

괜찮아요. 가능한 경우 코드 예제를 찾고 있습니다. 그래서문자열 [] 관리

, 내가 말할 수 있습니다, 일반 문자열을

string mystring = "this is my string i want to use"; 

좋아, 이제 난 내 문자열을 가지고, 내가,

string[] splitArray = mystring.Split(new char[] { ' ' }); 

확인과 공간하여 분할 그래서 지금을 난 splitArray [7]을 통해 splitArray [0]을가집니다. 지금, 나는 보통 wouldnt 할 필요가있는 끈에 약간 공상적인 것을 할 필요가있다. 내가 첫 번째 단어를 차단해야 할

, 그래서 같은 것을 가질 수 있도록 내가 다른 일곱 개 단어 왼쪽 오전 : : 여기에 몇 가지 지금

string myfirstword = "this"; 
mystring = "is my string i want to use"; 

을, 내가 사용해야합니다 여러 번 반복해서 mystring하고, 다른 시간에 다른 부분을 사용하고, 문자열에 따라 나는 얼마나 오랫동안인지 모를 것입니다. 그래서 나는 병이 필요한 것들의 몇 가지 예를 제시 할 것입니다. 얼마나 많은 단어

알 첫째, 병이 필요,이, 당신이 발견하는 경우 둘째, 병이 필요 같은 것들을 사용하는 몇 가지 방법

string secondword = splitArray[1]; 
string everythingAfterTheSecondWord = splitArray[2+]; 

(이것은 그냥 던지는, 쉬운) 내가 포함 된 [2+] ... + 내가 배열에있는 모든 문자열을 함께 넣을 것을 나타냅니다. 모두 공백을 문자열로 포함합니다. 내가 splitArray2 [4 +]로 불려 갔을 경우 지금

string examplestring = "this is my example for my stack overflow question"; 
string[] splitArray2 = examplestring.Split(new char[] { ' ' }); 

, 예를 들어, 그래서 내가 "내 스택 오버플로 질문"의 반환을 원하는 것입니다. 이제는 문자열 배열에 +를 추가하는 것만 큼 간단하지 않습니다.하지만 필요한 것은 무엇인지, 그리고 현재 상황에서는 간단하게 작동하지 않는 다른 많은 쉬운 방법을 시도했습니다.

또한 splitArray2 [2-5]와 같은 것을 호출하면 단어 2에서 5까지 분명히 나타납니다.

요약 :내 문자열 [] 배열을 더 잘 관리해야하며, 단어 * 뒤에있는 모든 단어를 찾을 수 있어야합니다. 문자열의 임의의 단어를 제거 할 수 있어야합니다. 문자열이 그대로이며 문자열을 찾을 수 있어야합니다. m ~ n

감사!

+3

이 숙제 질문인가요? 그렇다면 솔직하게 더 많은 도움을 얻을 것입니다. 그렇지 않다면 문자열로 작업하는 방법에 대한 MSDN 문서를 제안합니다. 여기서는 사용자가 제기 한 거의 모든 질문에 대해 설명합니다. – Josh

+0

나는 MSDN 문서를 어느 쪽이든 제안 할 것이다. –

답변

4

대부분 당신이 찾고있는 것은 List<string>으로 얻을 수 있습니다.간단히 :

string mystring = "this is my string i want to use"; 

List<string> splitArray = new List<string>(mystring.Split(new char[] { ' ' })); 
string firstWord = splitArray[0]; 

// mystring2 = "is my string i want to use" 
splitArray.RemoveAt(0); 
string mystring2 = String.Join(" ", splitArray.ToArray()); 

당신이 splitArray[2+]으로 설명하는 더 복잡한 일을하기 위해 LINQ는 생각이 필요하며, 따라서 .NET 3.5. splitArray[2-5]를 들어

List<string> everythingAfterTheSecondWord = splitArray.Skip(2).ToList(); 

:

List<string> arraySlice = splitArray.Skip(2).Take(3).ToList(); 
+0

좋아요, 그래서 처음에는 .ToArray() 마지막 줄의 끝에,하지만 지금은 .ToList, 나는 미쳐 가고 ... 또는 어느 것이 더 낫지? – caesay

+0

ToArray()는 배열을 반환하고, ToList()는'List '를 반환합니다. 아니, 너 미쳤어, 내가 바꿨어. 매우 현명한 사람을 인용하자면 (아니오, 지금 누가 누구인지 기억할 수 없음) * "배열이 컬렉션보다 훌륭하게 해결 된 적이 없었습니다."* 동의합니다. 그러나 그것은 당신이 사용하는 개인적인 선택입니다. –

0

글쎄, "워드 X에서 시작하는 모든 단어"를 수행하기 위해이 작업을 수행 할 수 있습니다 :

string newString = string.join(splitArray," ",x); 

가 X부터 Y 단어를 얻을하려면 다음을 수행하십시오

string newString = string.join(splitArray," ",x,y); 

을 얻으려면 단어 수 :

int wordCount= splitArray.Length; 

종합하기, 단어 XY는 다음과 같이 진행됩니다

string newString = string.join(splitArray," ",x, splitArray.Length-x+1);