問題タブ [stringbuffer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
198 参照

android - すべてのdescription.StringBuffer容量を表示できませんか?

アプリでRSSフィードを読みたいのですが、いくつかのガイドに基づいており、基本を実装することに成功しています。ただし、RSSアイテムを開くと、タイトルは表示されますが、説明(文字数が多い)は13行と3ポイントで終わります(...)。私はJAVAdocで、StringBufferの容量が制限されていることを読みました。容量がいっぱいになると、ポイントが設定されます。そのため、問題はStringBufferに起因すると思います。

何か助けてください?どうもありがとうございます。

0 投票する
5 に答える
22492 参照

java - StringBuffer を小さな部分に分割する

小さな部分に分割したい大きな文字列バッファがあります。文字列バッファは次のようになります

どこ

(idea.name1,name2,name3 は、さまざまな長さの実際の名前を表します)

ここで、名前を文字列配列に格納し、各位置に 200 個の名前を格納したいと考えています。

このタスクを達成するにはどうすればよいですか?

0 投票する
2 に答える
2888 参照

java - StringBuilderとStringBufferに共通のインターフェースを実装させてみませんか?

JavaStringBuilderとの違いは十分に文書化されており、StackOverflowでも触れられています。StringBuffer

基本的に、StringBuilderはの非同期コピーでありStringBuffer、のより高速なドロップイン置換として意図されていたため、ほとんど同じインターフェイスを備えていますStringBuffer。それらのAPIは実質的に同一であり、実際には現在のJDKの同じアクセスできない抽象クラスのサブクラスです。

したがって、私が疑問に思うことの1つは、なぜそれらが公に関連していないのかということです。両方のクラスに共通のインターフェースを実装させるかStringBuffer、のサブクラスとして持つStringBuilderことは理にかなっており、両方のクラスの共有コードの存在を可能にします。

では、なぜこの強制分離なのか?プログラマーが誤ってスレッドセーフなコードとスレッドセーフでないコードを混同しないようにするためでしたか?それとも、今や永遠の終わりまで受け継がれるのは、単なる設計の見落としだったのでしょうか。

編集:

明確にするために:私は物事がこのようなものである理由を推測することができますが、たとえばJSRプロセス中など、実際の決定への具体的な参照を望んでいます。私にとって、何が何かに光を当てるであろうものは、時々ある程度の困難を引き起こす状況です。

編集2:

両方のクラスが実装されているという事実はAppendable、私の心を完全に滑らせました。おそらく、その特定のインターフェイスはほとんどの目的で役に立たないためです。追加できるのは1つの文字または準備されたオブジェクトのみであり、それだけです。ほとんどの場合、両方のクラスがのサブクラスであるよりも便利ではありませんObject

編集3:

さて、これが半公式の情報源からのまさにこの質問の理論的根拠です:

図書館チームによる評価:

StringBufferとStringBuilderが共通のパブリックスーパータイプを共有しないのは設計によるものです。それらは代替を意図したものではありません。1つは間違い(StringBuffer)であり、もう1つ(StringBuilder)はその置き換えです。

明らかに、一般的なスーパータイプがないため、場合によっては、StringBufferからStringBuilderへの期待される移行が遅くなる可能性があります。反対に、共通のスーパータイプを追加することで、過去のエラーを取得し、パブリックインターフェイスにそれらを祀って常に一緒にいることになります。これは単に移行を遅らせるだけでなく、移行を狂わせます。

0 投票する
5 に答える
222 参照

java - 次の例で容量が112に変わるのはなぜですか?

次のコードでは...

...出力は次のとおりです。

0 投票する
6 に答える
6647 参照

java - Javaで大きなテキストファイルを読み取るためにStringBuilderをどのように使用できますか?

大きなテキストファイルの読み取り中にメモリ使用量を削減するための Java のメカニズムはありますか?

私が遭遇したほとんどすべてのプログラムは、文字列を使用してテキスト ファイルを読み取ります。しかし、Java は文字列リテラルごとにスペースを予約します。そのため、すべての文字列オブジェクトが格納されるため、メモリ使用量が増加すると思います。java.io のすべてのクラスは String を扱います。しかし、StringBuilder を使用していない場合、メモリ使用量を削減するにはどうすればよいでしょうか?

結局のところ、メモリ使用量の削減は StringBuilder の主な関心事です [String のように不変ではないため]。次に、String を使用せずに、つまり次のようなものを使用せずに、Java I/O 操作でその機能を活用するにはどうすればよいでしょうか。

0 投票する
5 に答える
3040 参照

java - Java Explain: String immutable が StringBuffer をより効率的にする理由

私は次のような Java の本を読んだことがあります。

aStringは不変であるため、使用するStringBuffer方が効率的です。

Stringインスタンスは不変であることを理解しています。

StringBufferまた、文字列の処理が通常よりも効率的であることも理解しています。

Stringしかし、私が解決できないのは、これら 2 つの概念を結び付けるもの、つまり、不変であることがどのように役立つのStringBufferかということです。

ありがとう :)

0 投票する
2 に答える
338 参照

java - StringBuffer が完全に読み取られない

サーバーに接続して応答を文字列として返す単純な関数があります。返されるデータのサイズが小さい場合でも、応答が大きい場合は正常に機能します。サーバーによって返された応答文字列を完全に保存せず、文字列を ... で終了します。驚くべきことに、system.out.println は正しい応答を返します。私を助けてください。私は本当に立ち往生しています。

0 投票する
5 に答える
7935 参照

java - Java を使用して文字列バッファから部分文字列を削除する

この部分文字列が発生するたびに、文字列バッファーから部分文字列を削除したいのですが、これまでに行ったことは次のとおりです。

「アリス」をすべて削除したい。しかし、次のエラーが発生します。

while行のエラーだと思います。何か案は?

0 投票する
4 に答える
3461 参照

java - StringBufferの再利用

concat、StringBuffer、StringBuilderの違いを知っています。私は、メモリを爆発させる可能性のあるStringBuffer.toStringバッキング配列のメモリの問題を認識しています。私は、初期容量に2の累乗を割り当てることで構成されるJDKSunの最適化についても知っています。

しかし、StringBuffer(toString()で使用)を再利用するための最良の方法について、またはStringBufferの再利用が適切であるかどうかについてはまだ疑問に思っています。メモリと速度のパフォーマンスを念頭に置いて、どちらが優れていますか?

また

なぜ ?

0 投票する
2 に答える
668 参照

java - JtextPaneまたはStringBufferでテキストを整列する方法

JTextPaneを使用していて、StringBufferから受け取ったテキスト結果を整列させたいと思っています。結果を実行するスレッドは、要求されたすべての結果を含む文字列を返します。その後、別のスレッドで、データをJTextPaneに配置します。

結果(文字列)を取得するコードは次のようになります。

明らかに、州/都市の長さに応じて、画面上の結果に一貫性がありません。きちんと揃えるために何を使うべきかを誰かが指摘できますか?これは、StringBufferを使用するか、後でJTextPaneで実行できます。

ありがとう

以下は、望ましい結果のスクリーンショットです。

ここに画像の説明を入力してください