반응형
문자열에서 마지막 단어 바꾸기-C #
문자열에서 단어의 마지막 항목을 바꿔야하는 문제가 있습니다.
상황 : 다음 형식의 문자열이 제공됩니다.
string filePath ="F:/jan11/MFrame/Templates/feb11";
그런 다음 다음 TnaName
과 같이 바꿉니다.
filePath = filePath.Replace(TnaName, ""); // feb11 is TnaName
이것은 작동하지만 때 나는 문제가 TnaName
내와 동일합니다 folder name
. 이런 일이 발생하면 다음과 같은 문자열을 얻게됩니다.
F:/feb11/MFrame/Templates/feb11
지금은 모두 발생 대체하고 TnaName
과를 feb11
. 내 문자열에서 마지막 단어 만 바꿀 수있는 방법이 있습니까?
참고 : feb11
인 TnaName
- 문제가되지 않습니다 다른 프로세스에서 유래한다.
다음은 문자열의 마지막 발생을 대체하는 함수입니다.
public static string ReplaceLastOccurrence(string Source, string Find, string Replace)
{
int place = Source.LastIndexOf(Find);
if(place == -1)
return Source;
string result = Source.Remove(place, Find.Length).Insert(place, Replace);
return result;
}
Source
작업을 수행 할 문자열입니다.Find
바꿀 문자열입니다.Replace
바꿀 문자열입니다.
을 사용 string.LastIndexOf()
하여 문자열의 마지막 발생 인덱스를 찾은 다음 하위 문자열을 사용하여 솔루션을 찾습니다.
수동으로 교체해야합니다.
int i = filePath.LastIndexOf(TnaName);
if (i >= 0)
filePath = filePath.Substring(0, i) + filePath.Substring(i + TnaName.Length);
Regex를 사용할 수없는 이유를 모르겠습니다.
public static string RegexReplace(this string source, string pattern, string replacement)
{
return Regex.Replace(source,pattern, replacement);
}
public static string ReplaceEnd(this string source, string value, string replacement)
{
return RegexReplace(source, $"{value}$", replacement);
}
public static string RemoveEnd(this string source, string value)
{
return ReplaceEnd(source, value, string.Empty);
}
용법:
string filePath ="F:/feb11/MFrame/Templates/feb11";
filePath = filePath.RemoveEnd("feb11"); // F:/feb11/MFrame/Templates/
filePath = filePath.ReplaceEnd("feb11","jan11"); // F:/feb11/MFrame/Templates/jan11
네임 스페이스 의 Path
클래스를 사용할 수 있습니다 System.IO
.
string filePath = "F:/jan11/MFrame/Templates/feb11";
Console.WriteLine(System.IO.Path.GetDirectoryName(filePath));
반응형
'developer tip' 카테고리의 다른 글
공백 / 탭 / 줄 바꿈 제거-Python (0) | 2020.10.23 |
---|---|
git 하위 모듈에 대한 새 커밋 무시 (0) | 2020.10.23 |
Java의 모든 열거 형 값으로 목록 채우기 (0) | 2020.10.23 |
ng-show 및 ng-animate로 슬라이드 업 / 다운 효과 (0) | 2020.10.23 |
bind_result와 get_result를 사용하는 방법의 예 (0) | 2020.10.23 |