タグ

stringに関するyukungのブックマーク (6)

  • javaで「+」をつかって文字列結合したらどうなるか

    おーたにさんに何か書けと言われたので何か書いてみます。 よくjavaで「+」つかって文字列結合すると遅いから止めた方がいいよって言われますよね?どんなケースでもまずいんでしょうか?気になったので調べてみました。 こんな感じでいくつか文字列を結合するサンプルを作ってそれをjavapにかけてみます。 public class A { public String a(String s) { s = s + "a"; s = s + "b"; return s; } public String b(String s) { s += "a"; s += "b"; return s; } public String c(String s) { return s + "a" + "b"; } public String d(String s) { return "a" + "b"; } }

  • Javaパフォーマンス計測 文字列操作編 - プログラマーの脳みそ

    前回でパフォーマンス計測に用いるタイマーについての理解を深めたので、やっとパフォーマンスの計測を始めることができる。 今回のテーマはJavaの文字列連結だ。タイムリーだね。 文字列連結についての基礎知識 Javaの文字列連結についての言語仕様まわりは Stringの連結はそう簡単なものではない - じゅんいち☆かとうの技術日誌 が詳しい。しかし、パフォーマンス計測がなっちゃない。パフォーマンスの計測はそう簡単なものではない。 currentTimeMillis()で計測しておいて plusTime:14780, concatTime:7053, sbuilderTime:7, sbufferTime:13 とか、その7とか13の有効数字はいくつだっての*1。 そんなわけで、計測方法を工夫してみよう。二重ループとし、内側を1000回、それを500回繰り返す。ループが1回まわる間に1回ずつSy

    Javaパフォーマンス計測 文字列操作編 - プログラマーの脳みそ
  • 文字列の結合をやるからといって、すぐにStringの+をつかってはいけない - かとじゅんの技術日誌

    文字列の結合っていろいろなやり方があるのですが、みなさんはどんなやり方をされていますか? String firstName = "Junichi"; String lastName = "Kato"; String fullName = ""; fullName += firstName; fullName += lastName; とか、もちろんやってないですよね? +演算子ってわかって使わないとヒドイことになりますよw 性能をはかってみよう ちょっと、簡単に以下のような性能をはかるテストを書いてみた。 文字列の連結方式としては、 Stringの+演算子 Stringのcontractメソッド StringBufferのappendメソッド StringBuilderのappendメソッド が考えられるので、それらの性能をはかってみた。 package tests; import org

    文字列の結合をやるからといって、すぐにStringの+をつかってはいけない - かとじゅんの技術日誌
  • Java文字列メモ(Hishidama's Java String Memo)

    一文字:char [/2010-06-20] 不変の文字列:String [/2023-09-24] 可変の文字列:StringBuffer/StringBuilder [/2023-09-24] StringWriter(PrintWriter)/PrintStream [/2009-02-14] StringJoiner [2014-03-19] コードポイントの例 [2017-01-28] 文字のStream [2014-04-29] 文字列の結合 [2007-07-01] 単独の結合の実行時間 ループ内結合の実行時間 +演算子の実態 [/2008-01-27] 結論 [/2014-04-29] 文字列の比較方法 [2008-04-16] 文字列比較の書き順 [2008-05-02] 半角カタカナ・全角ひらがな変換 [2012-06-15] 半角英数変換 [2014-04-29] c

  • 文字列連結と+演算子について整理しておく - 日々常々

    何度か書いているけど、整理的な意味で。今後は「このエントリ参照」にするつもりで書いてみる。 文字列連結から見るシステム内で扱う型について - 日々常々 Javaプログラマであるかを見分ける10の質問 に答えてみる - 日々常々 String の連結ネタの続き - 日々常々 前書き Stringなんてboxed primitive*1でもないただのクラスのくせに、中途半端に贔屓されて*2てムカつく*3し、その中途半端ぶり*4がなお腹立たしい……。そして +演算子 で連結して問題が起こるような状況、つまりそんな長々と文字列連結したいような場合は、きっと他の適した型がある。StringBuilderじゃなく、もっと別の何か。業務要件で文字列を組み立てる目的を考えれば、たぶんテンプレート的なものに落ち着くんじゃ無かろうか。ライブラリ的な所でなら逐次書き出し等になるような。どちらにせよ文字列の組み立

    文字列連結と+演算子について整理しておく - 日々常々
  • Stringの連結はそう簡単なものではない - かとじゅんの技術日誌

    追記: 指摘の通りで、現実的な連結回数での計測でもないですし、統計手法を用いた分析をしていないので、このエントリの計測値は当てにしないでください。なので以下のブログを参考にしてください。 currentTimeMillis()で計測しておいて plusTime:14780, concatTime:7053, sbuilderTime:7, sbufferTime:13 とか、その7とか13の有効数字はいくつだっての。 激しく今更感があるタイトルですが(;・∀・) 昔に取り上げたのですが、 文字列の結合をやるからといって、すぐにStringの+をつかってはいけない - じゅんいち☆かとうの技術日誌 Stringの+演算子は間違った使い方するとパフォーマンスが低下しますよっていう話題。若干ネタ成分ありますが、ご容赦ください。 これ系の話題は自分的にはオワコンなんですが、最近、また話題を見つけた

    Stringの連結はそう簡単なものではない - かとじゅんの技術日誌
  • 1