문제

여기서 정말 간단한 질문 (무엇보다 내 생각을 확인하기 위해) ...

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# 호출은 대신 처음부터 문자열을 제거하지만 지정할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top