タグ

javaとstringに関するkiyo_hikoのブックマーク (21)

  • JDK 22 Documentation - Home

    kiyo_hiko
    kiyo_hiko 2014/07/06
    下線を引くのに使った。下線と取り消し線あたりはFontに含まれてると嬉しかった。妄想としてはnew Font(Font.SERIF, Font.BOLD | Font.UNDERLINE, size)的に。
  • StringBuilderを使ったクソコードはどこまで遅いか - きしだのHatena

    ※ 4/9 11:25 いろいろ計測しなおしてます。こちらも参照 Javaで文字列連結する場合には+演算子よりもStringBuilderを使うべき、という話があるのですが、よく sb.append("[" + data + "]"); みたいなコードをみかけて、あんまり意味ないなーと思ったりします。 あと、 sb.append("title:"); sb.append("[" + data + "]"); みたいに、+演算子を使った一行の式にして sb = "title:" + "[" + data + "]"; としておけば「title:」と「[」はコンパイル時点で最適化されたのに、ってコードもあります。 ということでTwitterJavaでの文字列連結は+を使うべき、ってやったほうが、StringBuilder使ったsb.append("[" + data + "]")みたいなク

    StringBuilderを使ったクソコードはどこまで遅いか - きしだのHatena
  • Javaで文字列をゼロ埋め(ゼロパディング) - OKWAVE

    Javaで文字列を前ゼロで埋め(ゼロパディング)たいのですが、 exceptionが発生してうまくいきません。 だれかお助け頂けたら助かります。 (例)123の前に0を5つ結合したい場合、 String str2="123"; String str = String.format("%08s",str2); で問題無いと思ったのですが、 exceptionが発生してしまいます。 回答お待ちしております。

    Javaで文字列をゼロ埋め(ゼロパディング) - OKWAVE
    kiyo_hiko
    kiyo_hiko 2014/02/24
    動的型に慣らされてると案外ド忘れして時間食われるし参考になる
  • String.valueOfの罠: へっぽこSEのメモメモ

    コンピュータが苦手なSEが日々記すメモです。 いつか誰かのお役に立てれば幸いです。 ※このブログ記載の内容をご利用になる場合は、自己責任でお願いします。何が起こっても一切責任は持てませんm(__)m String#valueOf(Object obj)って、nullが入ればNullPointerExceptionでも投げてくれるものだと思っていました。 結果: String value = String.valueOf(null) System.out.println(value) -> 「null」と出力される System.out.println(value.length()) -> 「4」と出力される String.valueOfにnullを入れると、文字列"null"扱いになるとは… 確かにJavaDocに以下のような記述が。 ***************************

    kiyo_hiko
    kiyo_hiko 2014/01/04
    ナルは"null"になる
  • Java7 で String クラスがリファクタリングされていました - 地平線に行く

    先日、ついに JavaSE 7 がリリースされました! そこで、早速ダウンロードして、Java7 のソースコード(src.zip)を Java6と比較してみたところ、公表はされていないのですが、ちょこちょことリファクタリングされていることがわかりました。 そこで、そのうち String クラスについて調べてみました。 splitメソッド - 独自処理による高速化 いままでは、String#split(〜) は正規表現 (Patternクラス) に処理を移譲するだけでした。 // (Java6) Stringクラス、2291行目〜 public String[] split(String regex, int limit) { return Pattern.compile(regex).split(this, limit); } それが、単純な区切り文字なら正規表現を使わないで独自に処理をす

    Java7 で String クラスがリファクタリングされていました - 地平線に行く
  • アンドロイド - ショートトピックス - 愚鈍人

    ここでは、アンドロイド・プログラミングについてのちょっとした短いトピックをとりあげる。 今後、何かちょっとした面白いトピックがあれば、この記事に随時追加していきたい。 タイトルバーを表示しない。 アクティビティのタイトルバーを表示しないようにするには、 requestWindowFeature(Window.FEATURE_NO_TITLE)を実行する。 注意する点は、setContentViewメソッドを実行する前でないと効果がない。 以下にサンプルプログラムを示す。 このプログラムを実行すると、以下のようにタイトルバーの無い画面が表示される。 「CharSequence」ってなに? アンドロイドのプログラムをみていると、時々CharSequenceという型が出てくる。 初めてみたときは、これって何だろうと思ってしまった。 CharSequenceはアンドロイド固有のクラスではなく、もと

    kiyo_hiko
    kiyo_hiko 2013/10/05
    CharSequenceという型を知った。charAtやlengthを含むインターフェースで、Stringなどが実装している
  • Javaの文字列結合で+の方がStringBuilderより速かったりもする - Calms blog

    ※コメントでご指摘いただきましたが、コンパイラによる最適化には適用されるケースと適用されないケースがあります。 全然昔の知識ではないです。サンプルがたまたま最適化されるケースだっただけです。最適化が適用されるのはループ内とか一部だけです。ループ外にString変数を用意して、この変数に文字列結合すれば悲惨なことになります。 こちらの記事を読んで誤解して、StringBuilderを使わず被害を受けた人を何人か見かけたので、できれば下記URLなどを見て訂正をしてもらいたいところです。 http://www.pellegrino.link/2015/08/22/string-concatenation-with-java-8.html この点において、まるですべての状況において+結合は問題ない、と受け取られるように書いてしまっていました。迷惑をおかけした方々には深くお詫び申し上げます。 執筆時

    Javaの文字列結合で+の方がStringBuilderより速かったりもする - Calms blog
  • String配列の各要素をカンマ区切りで連結させたい - OKWAVE

    jdkのライブラリは全体的に「簡単に作り出せるものは提供しない」という姿勢のようです。 質問の内容の処理は簡単に作り出せるので、提供されていないのでしょう。 とはいえ車輪の再開発は避けたいもの。ちゃんとサードパーティが提供しています。 jakarta projectのcommons.lang.StringUtilsのjoin(Object[] array, char separator)がお望みのものに近いです。 他にもjakarta projectには便利なライブラリが多いので、いろいろ調べてみてください。 ja-jakartaにいくつかは日語訳されていますが、commonsはシンプルなので英語javadocでも十分に内容が分かると思います。

    String配列の各要素をカンマ区切りで連結させたい - OKWAVE
    kiyo_hiko
    kiyo_hiko 2013/09/16
    「commons.lang.StringUtilsのjoin(Object[] array, char separator)がお望みのものに近いです」
  • 空の文字列とnullと""の関係について - OKWAVE

    空の文字列とnullと""の関係について説明します。空の文字列は文字数が0である文字列を指し、""は空の文字列の表現方法の一つです。一方、nullは値が存在しないことを表す特殊な値です。つまり、""とnullは異なる概念です。TextFieldなどの要素に対して、tf.getText()==""かtf.getText()==nullで判定することはできますが、tf.getText().length()==0と比較する方法も使用できます。 空の文字列とは、文字数が0である文字列を指します。空の文字列は""と表現されることが一般的ですが、""以外の表現方法も存在します。一方、nullは、値が存在しないことを表す特殊な値です。つまり、空の文字列とnullは異なる概念です。 空の文字列とは、文字数が0である文字列を指します。一般的には、空の文字列は""と表現されますが、""以外の表現方法もあります

    空の文字列とnullと""の関係について - OKWAVE
    kiyo_hiko
    kiyo_hiko 2013/08/21
    getText()で参照をまずnullと比較をして、空文字との比較をしても捕まらずナルポで落ちていた。よくわからんのでgetText()のAPIを読む…
  • terai.xrea.jp is Expired or Suspended.

    「 terai.xrea.jp 」のページは、ドメインが無効な状態です。 ウェブサイト管理者の方はこちらから変更・更新を行ってください。 「 terai.xrea.jp 」is Expired or Suspended. The WHOIS is here.

  • Javaプログラマは文字列の操作方法を確認した方がいいかもしれない | 配電盤

    Twitter時代の文字の数え方」という記事で書いたことですが、「文字列を扱う」というよくあるタスクは、プログラミング言語によって扱いやすさがまったく異なります。Javaには不幸な呪いがかかっていて、そのうち、「文字列操作に関しては、例えば、Javaを避ける」と言われるようになるのではないかと心配しています。 「文字列中の文字を、1行に1文字ずつ表示する」という例題を考えましょう。 注意:話を単純にするために、Unicodeのコードポイント1つ分のことを「1文字」と呼んでいます。複数のコードポイントで文字を構成することもあるので、ほんとうはもっと複雑です。 次のような解答に、文句をつけられるものでしょうか。 String str="文字列"; int size = str.length(); for (int i = 0; i < size; i++) { System.out.prin

    Javaプログラマは文字列の操作方法を確認した方がいいかもしれない | 配電盤
  • Sign in - Google Accounts

  • 文字列の最後を削除する方法。 - 現在Androidを学習していますが、ほとんどJavaと同じなので、できればJava思考の方に... - Yahoo!知恵袋

    下記マルチタイムフレーム移動平均線のソースコード、①~③に対応するにはコードをどのように変更するのか、プログラムに詳しい方教えてください。 ①M1~MN(M1チャートを表示した際、最大9表示)に対応 ②時間軸を切り替えた際に下位足は表示しない(下記プログラム通り、表示している時間軸については通常の移動平均線を表示) ③精度(いろいろなサイトのものを使ってみると変に反応して曲がったままになり、一度時間軸を変更してまた時間軸を戻すということをしなければいけないものがあるため) #property version "1.00" #property strict #property indicator_chart_window #property indicator_buffers 1 #property indicator_plots 1 //parameters input ENUM_TIM

    文字列の最後を削除する方法。 - 現在Androidを学習していますが、ほとんどJavaと同じなので、できればJava思考の方に... - Yahoo!知恵袋
    kiyo_hiko
    kiyo_hiko 2013/08/02
    なるほいJTextField tとして、String s = t.getText(); t.setText(t.substring(0, t.length() - 1));的に書く
  • Javaの道:文字列(6.文字列の分割)

    splitメソッド splitメソッドはStringクラスのメソッドで、文字列を分割するために使用します。分割する区切り文字は正規表現で指定できます。正規表現を使用することにより、単純な区切り文字から、複雑な区切り文字まで柔軟に指定できるようになります。正規表現の詳細は、java.util.regexパッケージのJava APIドキュメントをご参照ください。

    Javaの道:文字列(6.文字列の分割)
    kiyo_hiko
    kiyo_hiko 2013/07/30
    StringTokenizerは非推奨になってるらしい。
  • Javaで正規表現を活用する(java.util.regexパッケージ)

    Javaで正規表現を活用する(java.util.regexパッケージ):JavaTips ~Javaプログラミング編 PerlやUNIXのgrepなどで欠かせない正規表現ですが、Javaでもこれを扱うためのパッケージjava.util.regexがJ2SE1.4からコアAPIに導入されました。ここでは、正規表現自体の詳細には触れず、クラスとそのメソッドの使い方についてのみ言及することにします。 まずは、具体的なサンプルを見てみましょう。サンプルは以下のような処理を行っています。 「javaまたはclassという拡張子が付いたファイル名を表す正規表現」と、入力文字列全体がマッチするかを「matches(マッチ)」によって調べる 入力文字列に正規表現にマッチする部分文字列があるかどうかを「find(検索)」により調べる 存在した場合には「group, start, endの各メソッドによって

    Javaで正規表現を活用する(java.util.regexパッケージ)
  • 文字列連結と+演算子について整理しておく - 日々常々

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

    文字列連結と+演算子について整理しておく - 日々常々
    kiyo_hiko
    kiyo_hiko 2013/04/11
    読んだ
  • JavaのString.split(”,”)は、split(”,”, -1)にしたほうがいい - $ cd ./.

    知ってる人にとっては何をいまさらって感じなんでしょうけど、はまってしまいました。 JavaのString.splitは、limit引数をつけないと、最後の空文字をとります。 http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#split(java.lang.String,%20int) new String("a,b,c,,,").split(",") の結果は、 {"a", "b", "c"} {"a", "b", "c", "", "", ""} を取るには、以下のように、-1をつける必要があります。 new String("a,b,c,,,").split("," , -1) APIドキュメントには、-2とかいう変な数値で例がありますが、基的に-1でも-2でも負の数値なら同じ。最初に読んだときは意味がわからず、

    JavaのString.split(”,”)は、split(”,”, -1)にしたほうがいい - $ cd ./.
    kiyo_hiko
    kiyo_hiko 2012/10/22
    こんな罠があるのかString.split // 「この仕様はひどい。perlとかから持ってきたんでしょうかね」
  • ResourceBundleとは : JavaA2Z

    J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名はjava.util.ResourceBundle。 リソースバンドルを使用するためのクラス。 ResourceBundleクラスのgetBundle()メソッドで「プロパティファイル名」を指定することで、クラスファイルと同じディレクトリに置いてあるプロパティファイルの中から、適切なロケールのファイルを探し出して取得する。 実際の値の取得は、getString()メソッドでキーを指定することで取得する。 厳密には、ResourceBundleはプロパティファイル「も」取得できるクラスであり、プロパティファイル専用のクラスではない。が、実際にはプロパティファイルを取得する場合によく使われる。 // Sample.java import java.util.ResourceBundle; public class Sample { p

    kiyo_hiko
    kiyo_hiko 2012/07/31
    「厳密には、ResourceBundleはプロパティファイル「も」取得できるクラスであり、プロパティファイル専用のクラスではない」
  • Javaの文字列置換で、関数を使って動的に置換文字列を作成する - penultの日記

    JavaScriptのreplace関数は // 各数字を2倍に置換する "12345".replace(/\d/g, function(str) { return parseInt(str, 10) * 2; }); // => "246810"のように、関数を使って置換文字列を作ることができるのがうれしい。これをJavaでもできないだろうか。 まず、Matcherクラス に用意されている機能を使った簡単な実装から。 package example; import java.util.regex.MatchResult; import java.util.regex.Matcher; import java.util.regex.Pattern; public final class RegexUtils { public static interface Replacement { S

    Javaの文字列置換で、関数を使って動的に置換文字列を作成する - penultの日記
  • 「ガベージコレクションの対象となるタイミングについて」(1) Java Solution - @IT

    IT 会議室 Indexリンク Windows Server Insider Insider.NET System Insider XML & SOA Linux Square Master of IP Network Java Solution Security & Trust Database Expert RFID+IC リッチクライアント & 帳票 Server & Storage Coding Edge @ITクラブ Cafe VB業務アプリケーション開発研究 @IT SpecialPR

    kiyo_hiko
    kiyo_hiko 2011/09/16
    intern()でプールされた文字列はいつガーベジ・コレクションの対象となるのか。あとで読む