2013-05-16 2 views
0

C#을 질문 : 나는 lastIndexOf에서도를 사용하여 문자열()을 뒤쪽으로 검색해야 이 문제의 문자열은 "사우스 다코타 1040"입니다 1040 시스템 표시에서 상태 이름을 분할 할 필요가있다. 문자열의 "1040"부분 만 얻을 수는 있지만 상태 이름 자체는 얻을 수 없습니다. 문자열에 공백이 두 개 있기 때문에 뒤로 이동해야합니다. 내가 보는 것보다 더 좋은 방법이 있을까요?lastIndexOf에서도() 메소드

+0

예, ** 정규 표현식 **. 입력 문자열에 [state name] [space] [number]와 같은 패턴이 있습니까? –

+0

"상태 이름을 얻을 수는 없지만 그 자체로는 무엇을 의미합니까? 왜 'myString.Substring (0, myString.LastIndexOf (' '))'? –

+0

다음을 시도하십시오 : http : //stackoverflow.com/questions/7945531/remove-last-element-from-array – Sparky

답변

-1

여기에 코드가 없으면 foreach에서 문자열을 잘라내어 위치 [0]/[1]보다 큰 셀/목록에서 찾은 문자열을 연결하는 것이 논리입니다. 이것이 너에게 충분 할까?

2

마지막 공간을 얻으려면 LastIndexOf을 사용하십시오. 그런 다음 문자열을 두 부분으로 나눠서 SubString 메서드를 사용하여이 작업을 수행 할 수 있습니다.

str.SubString(0, str.LastIndexOf(' ')); //this gets you "South Dakota" 

LastIndexOf이 -1을 반환 할 때 반드시 처리하십시오.

+0

처리 중 +1 -1. –

+0

Thx, 이것은 내가 찾고있는 것입니다. –

0
var test = "South Dakota 1040"; 

var state = test.Remove(test.LastIndexOf(" ")); 
-1
string replaceContent = "1040"; 
string content = "South Dakota 1040"; 
string result = content.Replace(replaceContent, "").Trim(); 
+0

OP가 정확히 명확하지는 않지만 마지막 목표 이후 모든 것을 없애는 것이 목표라고 생각합니다. –

1

는 이러한 작동합니다, 나는 정규식 옵션의 경우를 선호 : 소프트웨어 개발 (I 고양이 또는 동물의 다른 유형을 향한 더 나쁜 감정이 없다 주)에서 고양이를 피부하는 방법에는 여러 가지가 있습니다 당신은 핀 수있는 특정 패턴을 가지고,하지만 그건 단지 날 :)

// our string 
string x = "South Dakota 1040"; 

x.Substring(0, x.LastIndexOf(' ')); 
// this basically does the same as above, but removes anything with a space and numbers 
Regex.Replace(x, @"\s\d+", string.Empty); 
// this is simmilar to regex above, though you have to watch out for no match cases 
Regex.Match(x, @".*?(?=\s\d+)").Value; 
관련 문제