>  기사  >  Java  >  C++ 및 JAVA의 문자열에 대한 심층 분석

C++ 및 JAVA의 문자열에 대한 심층 분석

高洛峰
高洛峰원래의
2017-01-19 15:04:591102검색

모든 문자열 클래스는 C 언어 문자열에서 유래하며 C 언어 문자열은 문자 배열입니다. C 언어에는 문자열이 없고 문자 배열만 있습니다.
C++ 문자열에 대해 이야기해 보겠습니다. C++는 두 가지 유형의 문자열 표현, 즉 C 스타일 문자열과 표준 C++에서 도입된 문자열 유형을 제공합니다. 일반적으로 문자열 유형을 사용하는 것이 좋지만 실제로는 여전히 이전 C 스타일 문자열을 사용해야 합니다.
1. C 스타일 문자열: C 스타일 문자열은 C에서 시작되었으며 C++에서 확장되었습니다. 문자열은 문자 배열에 저장됩니다. 예:
const char *str = “zhangdan”(마지막 것을 잊지 마세요)

예제에서 str3과 str4의 "zhangpeng"은 모두 문자열 상수이므로 컴파일 타임에 결정되므로 str3==str4는 true이고 "zhang" 및 "peng"도 문자 문자열 상수입니다. 문자열은 여러 문자열 상수로 연결되며 그 자체가 문자열 상수여야 하므로 str2도 컴파일 타임에 문자열 상수로 구문 분석되므로 str2도 "에 대한 참조입니다.

JAVA에서 String과 StringBuffer의 차이점:

String:
은 기본 유형이 아닌 객체입니다.
은 일단 생성되면 변경할 수 없는 객체입니다. , 값을 수정할 수 없습니다.
기존 String 객체를 수정하려면 새 객체를 다시 만든 다음 새 값을 저장해야 합니다.
String은 최종 클래스이므로 상속될 수 없습니다.
StringBuffer:
수정 시 개체가 String처럼 재설정되지 않습니다.
생성자
StringBuffer sb = new StringBuffer( );
결제 기호로는 결제할 수 없습니다.
sb = "xxxxx";
객체가 생성된 후 메모리 공간이 할당되고 초기에 값이 저장됩니다. to StringBuffer
추가 방법을 사용할 수 있습니다.
sb.append("hello");
StringBuffer는 문자열 연결 작업에서 String보다 효율적입니다.
String str = new String("xxx" ) ;
str += "xx";
의 처리 단계는 실제로 StringBuffer를 생성한 다음 Append()를 호출하고 마지막으로
StringBuffer를 Sting();
으로 전송하는 것입니다. , 문자열 연결 작업에는 StringBuffer보다 몇 가지 추가 작업이 있으므로 속도가 느립니다.

질문하기: StringBuffer가 왜 그렇게 효율적인데 여전히 문자열이 필요한가요?
모르시면 확인해보세요. 방향은 상수풀입니다.

Python 문자열:
Python은 문자열을 정의할 때 유형을 정의할 필요가 없는 강력한 스크립트 언어입니다. Python 문자열에는 일반적으로 작은따옴표('...'), 큰따옴표("..."), 삼중따옴표("""...""") 또는 ('''...''')가 있습니다. 삼중따옴표를 사용하면 문자열이 여러 줄로 구성될 수 있으며 일반적으로 큰 설명 문자열을 나타낼 수 있습니다. 기본적으로 사용상의 차이는 없으나 큰따옴표와 삼중따옴표("""...""")에는 작은따옴표가 포함될 수 있고, 삼중따옴표('''...''')에는 큰따옴표가 포함될 수 있지만, 이스케이프가 필요하지 않습니다. 특별한 이스케이프가 필요한 경우 ''를 사용할 수 있습니다.
Python에는 문자열 조작을 위한 많은 기능도 있습니다. 구체적으로 C++ 및 java와 유사한 dir을 사용할 수 있습니다.

위 내용은 이 글의 전체 내용이므로, 모든 분들의 공부에 도움이 되었으면 좋겠습니다.

C++ 및 JAVA의 문자열 관련 기사에 대한 더 자세한 분석을 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.