문자열에서 마지막 세 문자를 제거하고 싶습니다.
string myString = "abcdxxx";
문자열은 동적 데이터입니다.
문자열에서 마지막 세 문자를 제거하고 싶습니다.
string myString = "abcdxxx";
문자열은 동적 데이터입니다.
답변:
문자열에서 마지막 3 자 읽기 [초기 질문]
string.Substring 을 사용 하고 시작 색인을 제공하면 주어진 색인에서 끝까지 하위 문자열을 얻을 수 있습니다.
myString.Substring(myString.Length-3)
이 인스턴스에서 하위 문자열을 검색합니다. 하위 문자열은 지정된 문자 위치에서 시작합니다. MSDN
업데이트 된 게시물에 대한 수정
문자열에서 마지막 3 자 제거 [업데이트 된 질문]
문자열에서 마지막 세 문자를 제거하려면 string.Substring (Int32, Int32) 를 사용하고 시작 인덱스 0와 끝 인덱스를 string length보다 3 적게 줄 수 있습니다. 마지막 세 문자 앞의 하위 문자열을 가져옵니다.
myString = myString.Substring(0, myString.Length-3);
String.Substring 메서드 (Int32, Int32)
이 인스턴스에서 하위 문자열을 검색합니다. 하위 문자열은 지정된 문자 위치에서 시작하고 지정된 길이를 갖습니다.
또한 String.Remove (Int32) 메서드를 사용하여 시작 인덱스를 length-3 으로 전달하여 마지막 세 문자를 제거 할 수 있습니다.이 지점에서 문자열 끝까지 제거됩니다.
myString = myString.Remove(myString.Length-3)
지정된 위치에서 시작하여 마지막 위치까지 계속되는 현재 인스턴스의 모든 문자가 삭제 된 새 문자열을 반환합니다.
나는이 모든 것을 읽었지만 조금 더 우아한 것을 원했습니다. 문자열 끝에서 특정 수의 문자를 제거하려면 :
string.Concat("hello".Reverse().Skip(3).Reverse());
산출:
"he"
Enumerable.Reverse문자열을 a char[]로 버퍼링 한 다음 char[]3 더 짧은 new로 버퍼링 한 다음 new string(내부적으로 다른 char[]) 를 생성하므로 여전히 느립니다 . 더 나은 접근 방식은 new string("hello".Reverse().Skip(3))이거나 AllBut(this string in, int i)Substring을 사용하는 자체 문자열 확장 함수 를 작성하는 것 입니다.
Length저장되어 있습니다.
.SkipLast(n). 아무것도 되돌릴 필요가 없습니다. "hello".SkipLast(3)제공"he"
myString.Remove(myString.Length-3);
myString = myString.Remove(myString.Length - 3)그건.
string test = "abcdxxx";
test = test.Remove(test.Length - 3);
//output : abcd
String.Remove지정된 위치에서 문자열 끝까지 삭제 하는 데 사용할 수 있습니다 .
myString = myString.Remove(myString.Length - 3);
myString.Substring(myString.Length - 3, 3)
다음은 하위 문자열에 대한 예입니다. >>
http://www.dotnetperls.com/substring
그것들을 참조하십시오.
문자열에서 마지막 문자 제거
TXTB_DateofReiumbursement.Text = (gvFinance.SelectedRow.FindControl("lblDate_of_Reimbursement") as Label).Text.Remove(10)
.Text.Remove(10)// 인덱스 10에서 끝까지 텍스트를 제거하는 데 사용됩니다.
쉬운. text = text.remove(text.length - 3). Remove함수가 해당 색인에서 문자열의 끝까지 모든 항목을 제거 하기 때문에 3을 뺍니다 text.length. 따라서 3을 빼면 3 개의 문자가 제거 된 문자열을 얻습니다.
이것을 일반화하여 다음 a과 같이 문자열 끝에서 문자 를 제거 할 수 있습니다 .
text = text.remove(text.length - a)
그래서 제가 한 것은 같은 논리였습니다. 이 remove함수는 내부에서 텍스트 길이 인 문자열의 끝까지 모든 항목을 제거합니다. 따라서 a문자열의 길이에서 빼면 a문자가 제거 된 문자열을 얻을 수 있습니다.
따라서 3에 대해서만 작동하는 것이 아니라 모든 양의 정수에 대해 작동합니다. 단, 문자열 길이가보다 작거나 같으면 a음수 또는 0을 반환합니다.