문자열의 첫 번째 문자를 얻기 위해이 질문을 읽었습니다 . C #의 문자열에서 처음 n 개의 문자를 얻는 방법이 있습니까?
답변
Enumerable 을 사용할 수 있습니다 .
char[] array = yourStringVariable.Take(5).ToArray();
또는 String.Substring 을 사용할 수 있습니다 .
string str = yourStringVariable.Substring(0,5);
String.Substring
문자열 길이가 필요한 문자보다 작은 경우 예외 가 발생할 수 있습니다.
결과를 문자열로 되돌리려면 다음을 사용할 수 있습니다.
-
문자열 생성자와 LINQ 사용
Take
string firstFivChar = new string(yourStringVariable.Take(5).ToArray());
접근 방식의 플러스는 미리 길이를 확인하지 않습니다.
- 다른 방법은
String.Substring
오류 검사와 함께 사용하는 것 입니다
처럼:
string firstFivCharWithSubString =
!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5
? yourStringVariable.Substring(0, 5)
: yourStringVariable;
답변
답변
하위 문자열 을 사용할 수 있습니다 (int startIndex, int length)
string result = str.Substring(0,5);
하위 문자열은 지정된 문자 위치에서 시작하며 지정된 길이를 갖습니다. 이 방법은 현재 인스턴스의 값을 수정하지 않습니다. 대신 현재 문자열 인 MSDN 의 startIndex 위치에서 시작하여 길이 문자가 포함 된 새 문자열을 반환합니다.
소스 문자열이 5 자 미만이면 어떻게됩니까? 위의 방법을 사용하면 예외가 발생합니다. 문자열의 문자 수가 5보다 많은지 확인하고 하위 문자열을 통해 처음 5 개를 얻는 조건을 넣을 수 있습니다. 참고 소스 문자열을 firstFiveChar 변수에 할당했습니다. 문자가 5보다 작 으면 firstFiveChar가 변경되지 않으므로 부분이 필요하지 않습니다.
string firstFiveChar = str;
If(!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5)
firstFiveChar = yourStringVariable.Substring(0, 5);
답변
아무도 사용할 때 적절한 검사를 수행하는 방법에 대해 언급하지 않았 Substring()
으므로 그것에 기여하고 싶었습니다.
을 사용 Linq
하고 싶지 않으면 Substring()
문자열이 Substring()
함수 의 두 번째 매개 변수 (길이)보다 큰지 확인해야합니다 .
처음 5자가 필요하다고 가정 해 봅시다. 다음과 같이 적절한 검사를 받아야합니다.
string title = "love" // 15 characters
var firstFiveChars = title.Length <= 5 ? title : title.Substring(0, 5);
// firstFiveChars: "love" (4 characters)
이 검사가 없으면 Substring()
함수는 존재하지 않는 문자를 반복하므로 예외가 발생합니다.
나는 당신이 아이디어를 얻는다고 생각합니다 …
답변
문제 .Substring(,)
는 주어진 문자열에 요청한 문자 수 이상의 길이 ArgumentOutOfRangeException
가 있어야 한다는 것입니다. 그렇지 않으면가 발생합니다.
해결 방법 1 ( ‘하위 문자열’사용) :
var firstFive = stringValue != null ?
stringValue.Substring(0, stringValue.Length >= 5 ? 5 : stringValue.Length) :
null;
사용의 단점은 .Substring(
주어진 문자열의 길이를 확인해야한다는 것입니다.
해결 방법 2 ( ‘Take’사용) :
var firstFive = stringValue != null ?
string.Join("", stringValue.Take(5)) :
null;
‘Take’를 사용 하면 주어진 문자열의 길이를 확인할 필요가 없습니다.
답변
PadRight 함수를 사용하여 문자열이 너무 짧아지지 않도록하고 필요한 것을 잡고 한 줄로 끝부터 공백을 잘라냅니다.
strSomeString = strSomeString.PadRight(50).Substring(0,50).TrimEnd();
답변
아무도 왜 이것을 언급했는지 모르겠습니다. 그러나 이것을 달성하는 가장 짧고 간단한 방법입니다.
string str = yourString.Remove(n);
n
-필요한 문자 수
예
var zz = "7814148471";
Console.WriteLine(zz.Remove(5));
//result - 78141