이 기본 Java 메소드와 동등한 C# 메소드는 무엇입니까?
-
05-09-2019 - |
문제
여기서 정말 간단한 질문 (무엇보다 내 생각을 확인하기 위해) ...
Java 방법 : [StringBuffer.Delete] 1;
[1]: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/stringbuffer.html#delete(int, int)
Java Code: sb.delete(sb.length()-2, sb.length());
C# (not sure if this is right):
StringBuilder sb = new StringBuilder();
....
sb.Remove(sb.Length - 2, sb.Length - (sb.Length - 2));
내가 확실하지 않은 이유는 Java Delete 메소드의 문서에 있습니다. 그것은 말한다
기판은 지정된 시작에서 시작하여 인덱스 엔드 -1의 문자로 확장됩니다.
나는 이것에 대해 너무 확실하지 않습니다 끝 -1 그 인용문의 약간 .. 그리고 내가 물건을 만들었을 수도 있다면.
건배 :)
편집 : heh. 나는 그것이 문자열에서 마지막 2 숯을 삭제하고 있다는 것을 알았지 만, 변환을 정확하게 유지하고 내 장황 코드를 hencs습니다. :)
해결책
마지막 2자를 삭제하려면 다음을 삭제합니다.
sb.Remove(sb.Length - 2, 2);
다른 팁
예, 맞습니다. "END -1"은 Delete (2, 8) 호출하면 인덱스 2에서 7으로 문자를 삭제하지만 색인 8의 문자는 아닙니다.
따라서 코드가 정확합니다. 그러나 일부 수학 기술은 여기에 유용 할 것이며 다음을 볼 수 있습니다.
x - (x - 2)
= x - x + 2
= (x - x) + 2
= 0 + 2
= 2
코드 만들기 :
sb.Remove(sb.Length - 2, 2);
같은 일을하는 또 다른 방법은 다음과 같습니다.
sb.Length -= 2;
Java의 삭제 호출에서 시작에서 끝까지 문자를 제거합니다. C# 호출은 대신 처음부터 문자열을 제거하지만 지정할 수 있습니다.
제휴하지 않습니다 StackOverflow