ホームページ  >  記事  >  Java  >  C++ および JAVA の文字列の詳細な分析

C++ および JAVA の文字列の詳細な分析

高洛峰
高洛峰オリジナル
2017-01-19 15:04:591164ブラウズ

すべての文字列クラスは C 言語の文字列に由来しており、C 言語の文字列は文字の配列です。 C言語には文字列はなく、文字配列のみがあります。
C++ 文字列について話しましょう: C++ では、C スタイルの文字列と標準 C++ で導入された文字列型の 2 種類の文字列表現が提供されています。一般に、文字列型を使用することが推奨されますが、実際には、依然として古い C スタイルの文字列を使用する必要があります。
1.C スタイルの文字列: C スタイルの文字列は C から生まれ、C++ で拡張されました。文字列は文字配列に格納されます。例:
const char *str = “zhangdan” (最後の文字列を忘れないでください)

例の str3 と str4 の "zhangpeng" は両方とも文字列定数であり、コンパイル時に決定されるため、文字列が複数の文字列定数で構成される場合、それ自体が文字列定数である必要があるため、str2 もコンパイル時に文字列定数に解析されるため、str2 は定数プール A 引用符内でも "zhangpeng" になります。

JAVA の String と StringBuffer の違い:

String:
オブジェクトはプリミティブ型ではありません。
一度作成されると、その値は変更できません。
既存の String に対するすべての変更。オブジェクトは新しいオブジェクトを再作成し、その中に新しい値を保存します。
StringBuffer:
は変更されると再作成されません。 -String のように確立されます。オブジェクト
コンストラクターを通じてのみ作成できます。
StringBuffer sb = new StringBuffer();
値シンボルを通じて支払うことはできません。
sb = "xxxxx";
オブジェクトが作成された後、メモリ領域を割り当て、最初に null を保存します。 StringBuffer
に値を渡す場合、その append メソッドを使用できます。
sb.append("hello");
StringBuffer は、文字列接続操作において String よりも効率的です。
String str = new String("xxx");
str += "xx";
実際の処理手順は、StringBuffer を作成し、次に append() を呼び出し、最後に
次に StringBuffer を Sting();
に変換することです。 case, String StringBuffer の接続操作にはいくつかの追加操作があるため、遅くなります

質問をしてください: なぜ StringBuffer は非常に効率的であるのに、それでも String が必要なのでしょうか?

知らない場合は、方向が一定のプールであることを確認してください。

Python 文字列:

Python は、文字列を定義するときに型を定義する必要のない強力なスクリプト言語です。 Python 文字列は通常、一重引用符 ('...')、二重引用符 ("...")、三重引用符 ("""...""") または ('''...''') で囲まれます。三重引用符で囲むと、文字列を複数行で構成でき、一般に大きな説明文字列を表すことができます。基本的に使い方に違いはありませんが、二重引用符と三重引用符("""...""")には一重引用符を、三重引用符('''...''')には二重引用符を含めることができますが、 not エスケープが必要です。特別なエスケープが必要な場合は '' を使用できます。Python には文字列操作用の関数も多数あります。具体的には、C++ や Java に似た dir を使用できます。

以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。

C++ および JAVA の文字列関連記事のより詳細な分析については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。