C #의 문자열에서 마지막 문자를 제거합니다. 우아한 방법?
이 같은 숫자 문자열이 2223,00
있습니다. 나는 그것을 2223
. 이것은 " , " 뒤에 정보가 없습니다 . " , " 뒤에 소수 두 자리 만 있다고 가정합니다 .
나는했다 :
str = str.Remove(str.Length - 3, 3);
더 우아한 해결책이 있습니까? 다른 기능을 사용할까요? -나는 명시적인 숫자를 넣는 것을 좋아하지 않는다-
실제로 하나의 매개 변수를 사용하는 Remove 오버로드를 사용할 수 있습니다.
str = str.Remove(str.Length - 3);
그러나 길이를 하드 코딩하지 않으려면 다음을 사용할 수 있습니다.
str = str.Remove(str.IndexOf(','));
아마도 이것은 :
str = str.Split(",").First();
이것은 쉼표 뒤의 모든 것을 제외한 문자열을 반환합니다.
str = str.Substring(0, str.IndexOf(','));
물론 이것은 문자열에 실제로 소수점이있는 쉼표가 있다고 가정 합니다. 그렇지 않으면 위의 코드는 실패합니다. 더 많은 확인을 원합니다.
commaPos = str.IndexOf(',');
if(commaPos != -1)
str = str.Substring(0, commaPos)
나는 당신이 시작하는 문자열로 작업하고 있다고 가정하고 있습니다. 이상적으로는 float 또는 double과 같이 시작하는 숫자로 작업하는 경우으로 캐스팅 int
한 다음 다음 myInt.ToString()
과 같이 할 수 있습니다.
myInt = (int)double.Parse(myString)
이것은 현재 문화를 사용하여 double을 구문 분석합니다 (여기서는 미국에서는 .
소수점으로 사용 ). 그러나 이것은 다시 입력 문자열을 구문 분석 할 수 있다고 가정합니다.
String.Format("{0:0}", 123.4567); // "123"
초기 값이 10 진수 인 경우 문자열로 변환해야합니다.
String.Format("{0:0}", double.Parse("3.5", CultureInfo.InvariantCulture)) //3.5
이 예에서는 Invariant culture를 선택하지만 원하는 문화를 사용할 수 있습니다.
앞으로 소수점에 2 개 또는 3 개의 선행 숫자가 포함될 수 있는지 알 수 없기 때문에 서식 지정 기능을 사용하는 것을 선호합니다.
편집 :를 사용 Truncate
하여, 또는.
Console.WriteLine(Decimal.Truncate(Convert.ToDecimal("3,5")));
사용할 수 있습니다 TrimEnd
. 효율적이고 깨끗해 보입니다.
"Name,".TrimEnd(',');
사용하다:
public static class StringExtensions
{
/// <summary>
/// Cut End. "12".SubstringFromEnd(1) -> "1"
/// </summary>
public static string SubstringFromEnd(this string value, int startindex)
{
if (string.IsNullOrEmpty(value)) return value;
return value.Substring(0, value.Length - startindex);
}
}
두 가지 이유로 여기에서 확장 방법을 선호합니다.
- Substring으로 연결할 수 있습니다.
Example: f1.Substring(directorypathLength).SubstringFromEnd(1)
- 속도.
LastIndexOf 및 Substring을 결합하여 스팅 내에서 쉼표의 마지막 인덱스 왼쪽에있는 모든 문자를 가져올 수 있습니다.
string var = var.Substring (0, var.LastIndexOf ( ','));
다음을 시도하십시오. 그것은 나를 위해 일했습니다.
str = str.Split(',').Last();
lastIndexOf를 사용하십시오. 처럼:
string var = var.lastIndexOf(',');
참고 URL : https://stackoverflow.com/questions/8098556/remove-last-characters-from-a-string-in-c-an-elegant-way
'code' 카테고리의 다른 글
자신이 정의한 레이아웃, onDraw () 메서드가 호출되지 않음 (0) | 2020.09.18 |
---|---|
파이썬, 명령 줄 프로그램을 인터프리터가 아닌 임의의 것을 자동 완성하는 방법 (0) | 2020.09.18 |
node.js 자체 또는 정적 파일 제공을위한 nginx 프런트 엔드? (0) | 2020.09.18 |
명령 줄에서 Ansible 플레이 북의 호스트 변수 재정의 (0) | 2020.09.18 |
왜“git push --set-upstream origin (0) | 2020.09.18 |