source

문자열 작성기에서 문자 제거

ittop 2023. 5. 22. 21:41
반응형

문자열 작성기에서 문자 제거

다음 문자열 작성기를 msrtResult로 사용하고 있는데, 이 문자열은 상당히 깁니다.

mstrResult.Append(rtbResult.Text).Append("})})" + Environment.NewLine)

mstrResult Now에서 마지막 ","를 제거하려면 어떻게 해야 합니까? (이것은 mstrResult의 중간에 있고 문자열을 추가하기 때문에 전체 문자열의 마지막 문자가 아닙니다.) 새 줄을 추가하기 전에 해야 합니다.감사해요.

길이를 줄여서 문자열(C#)을 줄일 수 있습니다.

mstrResult.Length -= 1;

편집:

당신이 질문을 업데이트한 후, 당신이 원하는 것이 무엇인지 알 것 같습니다 :) 이것은 어떻습니까:

mstrResult.Append(rtbResult.Text).Append("})})" + Environment.NewLine);
var index = mstrResult.ToString().LastIndexOf(',');
if (index >= 0)
    mstrResult.Remove(index, 1);

StringBuilder 확장을 추가합니다.

public static StringBuilder RemoveLast(this StringBuilder sb, string value)
{
    if(sb.Length < 1) return sb;
    sb.Remove(sb.ToString().LastIndexOf(value), value.Length);
    return sb;
}

그런 다음 다음을 호출합니다.

yourStringBuilder.RemoveLast(",");

제거할 문자의 위치를 알고 있는 경우 사용할 수 있습니다.

애초에 그것을 추가하지 않는 것이 더 쉬울 것이라고 생각합니다.


업데이트된 질문에는 마지막 쉼표 문자 제거에 대한 내용이 나와 있습니다.다음과 같은 메시지가 생성되지 않도록 하려면 이 작업을 수행해야 할 것입니다.

제 쇼핑 목록에는 우유, 계란, 버터, 생선이 포함되어 있었습니다.

이것을 고리 모양으로 조립하여 배열을 반복합니다.일반적으로 루프를 작성하여 루프의 최종 반복에 있을 때 명령을 추가하지 않도록 선택할 수 있습니다(예: if 문).

추가한 마지막 문자를 제거하려면 아래를 사용합니다(VB이지만 C도 비슷하게 작동해야 함).

Dim c As New StringBuilder
c.Remove(c.Length - 1, 1)

해라

mstrResult.Remove( mstrResult.Length - 1 - Environment.NewLine.Length
                 , Environment.NewLine.Length);

사용:

stringbuilder blahh = new stringbuilder()
int searchKey = blahh.LastIndexOf(',');

그 다음에 방문

blahh.Remove( searchKey, 1).Insert(searchKey, " and"); or a blank.

언급URL : https://stackoverflow.com/questions/5701163/removing-a-character-from-my-stringbuilder

반응형