: -문자열의 정의되지 않은 길이에서 부분 문자열을 추출하는 방법은 무엇입니까? 이러한 문자열을 하위 문자열
1. ZZ111122
2. ZZZZ222111
3. ZZZZZZZ333
4. ZZZ111333
내가 문자열의 이러한 종류가있다. 이 값은 항상 Z로 시작합니다. 그리고 Z 이후에는 항상 1 또는 2 또는 3입니다. 그러나 문자열에서 Z의 수를 알지 못합니다. 그러면 문자열에서 Z를 모두 추출하는 방법은 무엇입니까?
: -문자열의 정의되지 않은 길이에서 부분 문자열을 추출하는 방법은 무엇입니까? 이러한 문자열을 하위 문자열
1. ZZ111122
2. ZZZZ222111
3. ZZZZZZZ333
4. ZZZ111333
내가 문자열의 이러한 종류가있다. 이 값은 항상 Z로 시작합니다. 그리고 Z 이후에는 항상 1 또는 2 또는 3입니다. 그러나 문자열에서 Z의 수를 알지 못합니다. 그러면 문자열에서 Z를 모두 추출하는 방법은 무엇입니까?
String test = "ZZ111122";
String zOnly = test.Substring(0, test.IndexOfAny("123".ToCharArray()));
IndexOfAny()
을 활용하십시오. 나는 당신이 오직 Z의 왼쪽 ("문자열에서 모든 Z를 추출")을 원한다고 가정하고있다.
주의 :'IndexOf'가 텍스트 내에서 단일 문자를 검색하는 동안'IndexOfAny'는 텍스트 내에서 여러 문자를 검색합니다. 이는 확실히 성능이 떨어집니다. 몇 번에 걸쳐 매우 유용하지만 OP가 필요하지는 않습니다. –
@ErickPetru : True이지만 OP가 성능 요구 사항을 지정하지 않았습니다. –
물론 OP는 성능이 좋지 않아 답변을 선택합니다. 실제로'IndexOfAny'는 문자열 메소드이므로 코드가 다음과 같아야하기 때문에 완전히 작동하지 않는 답을 선택합니다 :'String zOnly = test.Substring (0, test.IndexOfAny ("123".ToCharArray())))); 마지막으로, 수용된 대답은 ** 0 ** 표를 갖는다. 그것을 읽는 것은 어떻습니까? [대답을 받아들이는 방법은 무엇입니까?] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –
regular expressions과 같은 소리가 나올 것 같은데요.
이것은 어렵지 않습니다. 텍스트를 줄 단위로 처리하는 것이 좋습니다.
문자열을 문자 단위로 반복 할 수 있습니다. 정규식을 사용할 수 있습니다. 또는 내 sscanf() replacement class for C#을 사용할 수도 있습니다.
내가 제대로 이해하는지 모르겠다. 당신이 "ZZZZ222111"가하고 싶은 경우에만 "222111"을 수행
만 "ZZZZ"를 원하는 경우string test = "ZZZZ222111";
test = test.Substring(test.LastIndexOf("Z") + 1);
이 그것을 수행
string test = "ZZZZ222111";
test = test.Substring(0, test.LastIndexOf("Z"));
두 가지 방법이 매우 간단합니다. 루프 나 정규식이 필요 없습니다.
+1 동시에 더 완전하고 쉬운 솔루션을 원합니다. –
사용 String.Trim 기능 : 추출하여
ZeroZValue = stringValue.Trim('Z');
int start = someString.IndexOf("Z");
int end = someString.LastIndexOf("Z");
someString.Substring(start , end - start);
당신은 아마 "제거"의미합니까? – tvanfosson
예상되는 결과는 무엇입니까? 예를 들어 1 행 : "ZZ"와 같은 문자열을 원하십니까? 또는 "111122"일 수 있습니까? –