문자열의 처음 10자를 무시하는 방법은 무엇입니까?
입력:
str = "hello world!";
산출:
d!
문자열의 처음 10자를 무시하는 방법은 무엇입니까?
입력:
str = "hello world!";
산출:
d!
답변:
str = "hello world!";
str.Substring(10, str.Length-10)
길이 검사를 수행해야합니다. 그렇지 않으면 오류가 발생합니다.
str = str.Remove(0,10);
처음 10자를 제거합니다.
또는
str = str.Substring(10);
11 번째 문자에서 시작하여 문자열 끝까지 부분 문자열을 만듭니다.
귀하의 목적을 위해 그들은 동일하게 작동해야합니다.
Substring
두 가지 오버로딩 방법이 있습니다.
public string Substring(int startIndex);//The substring starts at a specified character position and continues to the end of the string.
public string Substring(int startIndex, int length);//The substring starts at a specified character position and taking length no of character from the startIndex.
따라서이 시나리오에서는 아래와 같은 첫 번째 방법을 사용할 수 있습니다.
var str = "hello world!";
str = str.Substring(10);
출력은 다음과 같습니다.
d!
길이를 확인하여 방어 코딩을 적용 할 수 있습니다.
하위 문자열 방법을 사용하십시오.
string s = "hello world";
s=s.Substring(10, s.Length-10);
시작할 인덱스 인 단일 매개 변수를 사용하는 Substring 메서드를 사용할 수 있습니다 .
아래의 코드에서 길이가 원하는 시작 인덱스보다 작고 길이가 0 인 경우를 처리합니다.
string s = "hello world!";
s = s.Substring(Math.Max(0, Math.Min(10, s.Length - 1)));
에 대한:
var str = "hello world!";
처음 10 자없이 결과 문자열을 얻고 문자열 길이가 10 이하인 경우 빈 문자열을 얻으려면 다음을 사용할 수 있습니다.
var result = str.Length <= 10 ? "" : str.Substring(10);
또는
var result = str.Length <= 10 ? "" : str.Remove(0, 10);
하나의 메소드 매개 변수 만 필요하므로 첫 번째 변형이 선호됩니다.
호출 SubString()
은 새 문자열을 할당합니다. 최적의 성능을 위해 추가 할당을 피해야합니다. 시작 C# 7.2
당신은을 활용할 수 스팬 패턴.
를 대상 .NET Framework
으로하는 경우 System.Memory NuGet
패키지를 포함합니다 . 를 들어 .NET Core
프로젝트를이 상자 밖으로 작동합니다.
static void Main(string[] args)
{
var str = "hello world!";
var span = str.AsSpan(10); // No allocation!
// Outputs: d!
foreach (var c in span)
{
Console.Write(c);
}
Console.WriteLine();
}