2012-04-24 2 views
0

이것은 간단한 초보자 질문입니다. 아마도 substring과 다른 메서드와 같은 문자열의 복잡한 메서드를 사용하여 이것을 알아낼 수 있었지만 더 좋은 방법이 있는지 궁금해하고있었습니다.C#에서 부분 문자열 가져 오기?

string foo = "°F"; 

나는 "℃,"와 "F"이 경우 두 개의 서로 다른 문자열로 그것을 깰 수있는 가장 좋은 방법은 무엇입니까 :

내가 C#에서 문자열을 말해봐?

나는 무슨 일이 있었는지보고 있습니다. stackflow가 HTML을 해석하고있었습니다. 실제로는 (앰퍼샌드)도 (세미콜론) F입니다.

지난 밤에 게시했을 때 죄송합니다.

+0

문자열 X = foo.replace ("F", "")에 대한; 문자열 y = foo.replace ("°" ""); – anonymous

+1

문자열을 분할하는 기준은 무엇입니까? ('String.Substring (start, length)'가 너무 복잡해서 해결책을 찾기가 어려울 수도있다). –

답변

8

는 나는 "복잡"하지만 만약 몰라 : 당신이 비록 지나치게 간단한 예를 선택한 것처럼

string degree = foo[0].ToString(); 
string f = foo[1].ToString(); 

나는 생각합니다. 정말로 두 개의 문자열을 다루고 있습니까, 아니면 좀 더 흥미로운 것을하려고하십니까?

업데이트 : 글쎄, 난 아직 여기에 열심히 뭔가를 시도해야한다 생각합니다.

string f = foo.Replace("°",""); 
string deg = foo.Replace("F", ""); 

또는 당신은 할 수 있습니다 : (@ 제임스 Didzun 모자 팁 :) :하지만, 여기에 또 다른 방법

string deg = foo.Substring(0, 5); 
string f = foo.Substring(5,1); 

또는 :

var deg = new string(foo.TakeWhile(c => c != 'F').ToArray()); 
var f = foo.SkipWhile(c => c != 'F').First().ToString(); 

또는 :

string[] x = foo.Split(';'); 
string deg = x[0] + ";"; 
string f = x[1]; 

또는 :

string deg = "°" 
string f = "F"; 

개인적으로 나는이 마지막 접근 방식을 선호합니다. 왜 당신은 정확한 내용을 알고있는 문자열을 나누고 있습니까?

+0

위 문제를 업데이트했습니다. 게시 한 후 내 게시물을보고 미안 해요. –

+0

정확한 내용을 모르겠습니다. 그것은 단지 예일뿐입니다. 데이터는 Weather Bug의 XML 피드에서 가져온 것입니다. 감사합니다. 오늘 밤 한번 시도해 보겠습니다. –

1

방법이 :-)

char[] foo = "°F".ToCharArray(); 

char c1 = foo.First(); 
char c2 = foo.Last(); 
+0

위의 문제를 업데이트했습니다. –

관련 문제