こんにちは! アキバです。 ...T3ブログは初登場かもしれません。ハジメマシテ。 以後お見知りおきを。 いよいよ、2014年3月、Java8が正式公開されますね。 なんと言っても、Java8の注目機能はラムダ式ですので、ラムダ式や型推論に関する記事は多いです。 世の中で「Java8」と検索すると、皆さんいろいろと記事を書かれているので、おおよその事はこれで分かっちゃうような気がします。 が、 実は地味に便利なAPIが追加されていたりすることを最近知りました。 これはあまり触れられていないぞ、と。 というわけで、このエントリでは、あまり日本語で情報の無い、しかし地味に便利なAPIに実際に触れてみます。 大事なところなので2回強調して書いてみました。 今回は、前編として4つ紹介します。 ※APIの紹介と言いつつ、コードにはラムダ式を使ったコードが普通に出てるので、ご了承ください。 (むしろ、
“aabb:ccee:dfefs:efsfds:” という文字列があって、コロン(:) でsplit(“:”) すると [aabb,ccee,dfefs,efsfds] という配列になってしまう。 区切った文字も区切った後の文字列に含めたい場合などは (?<=:) や、 (?=:) とする。 正規表現の、 (?<=:) はコロン(:)直前の所を指し、 正規表現の、 (?=:) はコロン(:)直後の所を指す。 これを利用して区切ると、コロン(:)も含めた形で区切る事が出来る。 さらに、この二つを or(|) にすると、コロン(:) 自体も文字として配列に収める事が出来る。 String target = "aabb:ccee:dfefs:efsfds:"; String[] splitAfter = target.split("(?<=:)"); String[] splitBefore =
第一引数で書式を指定し、その書式に則って第二引数以降の値を編集(変換)して出力する。 (第二引数以降の値は、可変長引数で複数指定できる) System.out.printf("値1=%d 値2=%d", 123, 456); String s = String.format("%04x", 789); 書式には「%」が入った文字列を指定する。「%」の書式指定に従って変換が行われる。 デフォルトでは、複数の%指定がある場合、第二引数以降の値が順番に使われる。 引数が多い分には無視されるだけなので別に構わないが、指定に該当する引数が足りないと例外が発生する。 変換の実体はFormatterクラスにある。 したがってどのような書式があるかについてはFormatterのJavadocに載っているが、代表的なのは以下のようなもの。 C言語と同様の書式指定 書式 説明 例
AndroidでWeb APIを使う場合、マルチスレッドによるユーザビリティ向上を以前のエントリで説明しました。 AndroidアプリのUIはシングル・スレッド モデルです。 単純にマルチスレッドにしてUIの操作をしてしまうと、CalledFromWrongThreadExceptionでアプリがダウンしてしまいます。 これを回避する仕組みがHandlerです。 Handlerの仕組みを簡単に説明しようと思ったのですが、 またもや長くなってしまったので、先にまとめます。 AndroidのUI操作はシングル・スレッド モデル ユーザビリティ向上の為にはマルチスレッドが必要 Handlerで実現 Handlerを使わない場合に起きる例外は実行スレッドのチェックで発生 Handlerを使うと、UI Threadの持つキューにジョブを登録できる キューはUI Threadにより実行される
文字列を数データに変換し、比較・計算を行いたい場合があります。文字列として数字を受け取り、算術処理したい場合などです。Byte、Short、Integer、Long、Float、Doubleの各クラスにおいて、文字列を数データに変換する以下のメソッドが用意されています。
Javaの文法一覧です。他の言語をある程度知っている人はこれを読めばJavaの基礎をマスターしてJavaを書くことができるようになっています。簡易リファレンスとしても利用できると思いますので、これは足りないと思うものがあれば教えてください。 1. 基礎 classの作成 プログラムはclassに記述します。たとえばSampleという名前のclassを作る場合、Sample.javaファイル内に次のように書きます。 public class Sample { } mainメソッドの作成 プログラムはclass内のmainメソッドの先頭から実行されます。mainメソッドは次のように書きます。 public class Sample { public static void main( String[] args ) { // 処理を書く } } System.out.printlnメソッド 文
Java基礎文法最速マスター - いろいろ解析日記をリスペクト。 Javaの変態文法・技法一覧です。Javaの基礎をある程度知っている人はこれを読めばJavaの変態をマスターしてJavaを書くことができるようになっています。簡易リファレンスとしても利用できると思いますので、これは足りないと思うものがあれば教えてください。 1.基礎 エンクロージング型内部classの作成 外部classのインスタンスに紐付くインスタンスを生成します。外部クラスのインスタンス - 内部クラスのインスタンス間に、クラス - インスタンスのような関係を持たせることができます。 public class Outer { public class Inner { } } というようなクラスを作った場合、 Outer o = new Outer(); Inner i = o.new Inner(); となります。new
一文字: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
カテゴリ はじめに (9) コンポーネント (21) 広告 (8) 通信 (13) web連携 (10) ファイル操作 (9) 描画 (15) その他 (18) アプリ制作 (11) 個人アプリ制作 (13) カメラアプリ (10) QRコード (2) 制作補助クラス (3) fragment (7) map (3) 音 (7) xml (3) androidアプリTips (127) OpenGL (2) OpenGL es2 (11) トリミング (4) SQLite (2) FaceBook (3) eclipse (7) android studio (2) Service (3) 書籍紹介 (3) やや株式会社という、インタラクティブなコンテンツを作る会社を経営しています。 androidのアプリの他、unityでの制作やアプリも行っております。お気軽にお問合せください。 内外の
JSTL (JSP Standard Tag Library) は J2EE 1.5 で標準化されたカスタムタグライブラリです。 JSTL 1.1 は以下の 5 つのライブラリで構成されています。
多くの人はこうやればいいと思っているかもしれません。 java.util.Date d = new java.util.Date(); java.sql.Date d2 = new java.sql.Date(d.getTime());確かにこれでも一応変換はできますが、きちんと変換してはいません。java.sql.DateのJavadocを見るとこう書いてあります。 SQL DATE の定義に対応させるために、java.sql.Date のインスタンスでラップされたミリ秒の値は、インスタンスが関連した特定のタイムゾーンで時間、分、秒、ミリ秒をゼロに設定することで、「標準化」する必要があります。 つまり、java.util.Date#getTime()をjava.sql.Dateにただ渡すだけでは不十分で、「特定のタイムゾーンで時間、分、秒、ミリ秒をゼロに設定しなければいけない」のです。そ
概要 HttpSession関連のリスナーには、HttpSessionListenerインタフェース、HttpSessionAttributeListenerインタフェース、HttpSessionBindingListenerインタフェース、HttpSessionActivationListenerインタフェースの4つがあります。 HttpSessionListenerインタフェース セッションが作成されるときや破棄されるときに呼び出されます。セッション数の把握、セッション作成時の初期化処理の際などに使用します。 HttpSessionAttributeListenerインタフェース sessionスコープを持つデータが追加・置換・削除されたときに呼び出されます。該当のデータに変更があったときにその変更をログに出力したい場合などに使用します。 HttpSessionBindingListe
Eclipse の ant で、Javadoc タスクを実行すると、Javadoc 出力が途中で止まってしまうか、文字化けしてしまう問題との戦いの最終章「解決編」です! 以下二つのエントリーのおさらい Eclipse 3.4.2 + ant + javadoc はとりあえず解決も 3.5 は NG Eclipse 3.4.2 + ant + javadoc (jdk1.6.0_13) 不調 前提条件は以下 Windows XP SP3 Eclipse 3.4.2 build M20090211-1700 Eclipse 内蔵 ant jdk1.6.0_13 javadoc 実行すると javadoc: [javadoc] Generating Javadoc [javadoc] Javadoc execution と表示されて止まっている。 これの解決策はコンソールのエンコーディングで O
Teedaのダブルサブミットを調べついでにSAStrutsも。 SAStrutsの場合Tokenでチェックするみたいですねぇ。 そりゃそうか、Strutsだもんね。 チュートリアルのTokenActionをまるぱくり。 @Resource protected HttpServletRequest request; @Execute(validator = false) public String index() { TokenProcessor.getInstance().saveToken(request); return "index.jsp"; } @Execute(validator = false, validate = "validate", input = "index.jsp") public String result() { return "result.jsp"; }
Apache Jamesを使って、開発に都合のいいSMTP・POPサーバを構築します。 0. この記事を書くに至るまでの経緯、とか。 開発用メールサーバに欲しい機能として、以下の4つがあげられます。 メールが外に漏れない。 スタンドアローンのWindowsで動く。 あらゆるアドレスに送ったメールが1つのPOPアカウントから見える。 届いたメールがウェブから見える。 1。メールを外に送出しない設定ができること。ウェブアプリケーションの開発に、リアルワールドに直結したメールサーバを使っていると、ちょっとしたミスで、外に出してはいけないメールを送ってしまう可能性があります。いままでメールの操作で何度かひどいミスをしているので(@の前に自分の苗字を書くつもりで名前を書いたりとか……)、なんとかしたいと思っていました。 2。ローカルのWindows上で動いてほしい。今年に入って開発環境をノートPCに
セットアップ S2Mai本体 S2Mai-Tiger Maven2からのご利用 Eclipseへのインポート まずは使ってみる 全体の設定 基本的な使い方 アノテーションを使った設定 メール内容クラスのプロパティでの設定 添付ファイルについて セットアップ Seasar2と同様にJDK1.4以上が必要です。 S2Mai本体 ダウンロードしたs2mai-x.x.x.zipを解凍すると、s2maiディレクトリが出来ます。そのなかのlibディレクトリにある「s2mai-x.x.x.jar」をクラスパスに含めて下さい。 他、必要となるjarファイルもlibディレクトリ内にありますが、その内、S2Mai本体が必要とするものは以下になります。 mail-x.x.jar activation-x.x.x.jar ozacc-mail-x.x.x.jar s2-framework-2.4.x.jar s2
ちょっと学んだので整理。 まずJavaにはランダムを提供するクラスとして java.util.Random java.security.SecureRandom の2つがあってRandomクラスは以下のような強度しか持っていない。 Random クラスのインスタンスは、一連の擬似乱数を生成します。クラスでは 48 ビットのシードを使い、このシードは線形合同法で変更されます。 http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/util/Random.html しかも初期化があまりよくなくて初回の乱数がとても偏る。 Random r = new java.util.Random(); double x, min = 1, max = 0; for (int i = 0; i < 1024; i++) { r.setSeed(
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く