2012-02-09 3 views
1

죄송합니다. 질문이 길어서 죄송합니다. 나는이 기능에 해당 문자열을 실행하면 내가 ASP.Net C#을공백이있는 각 단어를 분리하여 일부 텍스트로 배열에 저장할 수 없습니다.

private void separateSpaces(string text) 
{ 
string[] separatedWords = text.Split(' '); 
for(int i=0;i<separatedWords.length;i++) 
{ 
    Response.Write("<br>"+separatedWords[$i]); 
} 
} 

이 함수에 전달하면

는 내가 완벽하게 내 예상 답변을 얻을,이 문자열 "Hello how are you"

있습니다. Like

Hello 
how 
are 
you 

하지만이 텍스트의 대상은 언제입니까? 내가 잘못 출력

를 얻고 이것은 함께 문자열로 처리됩니다

India May 

을 제외하고

Fusion Technologies, Hyderabad, India       May 2005 – July 2007 
Net Developer 

모든 것이 잘 나누기 텍스트입니다. 나는 그들 모두 분리해야

답변

3

어쩌면 India May은 공백이 없기 때문에 단일 문자열로 처리됩니다 (예 : \t과 같은 다른 공백)?

이 시도하고 작동 여부를 확인 :

string[] seperatedWords = text.Split(default(string[]), 
    StringSplitOptions.RemoveEmptyEntries); 

default(string[])은 단순히 null입니다. String.Splitnull을 첫 번째 인수로 받으면 과 일치하는 모든 공백 문자를 구분 기호로 취급합니다.

+0

당신은 내 생명의 은인입니다! –

+0

이상한, 내가 제공 한 텍스트를 복사했으며 탭 기호가 없습니다. – sll

2
string data = "Fusion Technologies, Hyderabad, India     May 2005 "; 
var items = data.Split(
         new[] {' ', ',', '\t' }, 
         StringSplitOptions.RemoveEmptyEntries); 

출력 :

코드 샘플에서 단어가 공백으로 구분되어 있지만, 실제 텍스트는 아마도 분리 탭 문자 또는 다른 공백 문자가
[0]: "Fusion" 
[1]: "Technologies" 
[2]: "Hyderabad" 
[3]: "India" 
[4]: "May" 
[5]: "2005" 
+3

그는 "인도"와 "5 월"이 같은 줄에 있다고 말하면서 문제를 해결하지 못합니다. 해결책은 실제로 그 일을 처리하지 않습니다. –

+0

@Lester : 정교하게 부탁해 주실 수 있겠습니까? 미안 해요. "같은 줄"에 관한 요점을 알지 못했습니다. – sll

+0

Ty sll. 나는 너의 것을 먼저 시험해 보았다. 나는 내 것과 같은 결과물을 얻었고, 나중에 나는 지미를 시도해 보니 매력적이었다. 나는 나의 2 번째 백업으로 대답을 얻을 것이다. +1. –

0

말. 텍스트를 분할하기 전에

text = text.Replace("\t", " "); 

또는 이와 유사한 내용을 사용하고 싶을 것입니다.

+2

또는 심지어 더 나은,'\ t''을 분리 자로 정의하십시오 :'data.Split (new char [] ','\ t '})' –

+0

아, 맞아요, Split의 과부하를 잊어 버렸습니다. – alan

관련 문제