IT技術Labo - HouseTect

Javaフリーエンジニアとしての苦悩や、アーキテクトになるための努力の軌跡を掲載しています。.NETとJavaに力を入れた技術情報発信ブログです。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

String型からInt型、又はInt型からString型

Javaでよく使う2つのキャスト方法です。
FormBeanから値を取ってきて、それをFor文でまわす~。
みたいなときに重宝しています。

■String型からInt型
int val = 12345;

//int型をString型に変換
String str = String.valueOf(val);

■Int型からString型
String str = new String("12345");

//String型をint型に変換
int i = Integer.parseInt( str );
スポンサーサイト

Javaで0パディングする方法

今回の開発で0パディングを手早くする方法を探していましたが、既存Javaにはそのようなメソッドが準備されていなかったので、ネットを巡回。
するといい感じに作られてるブログがあったので参考にさせていただきました。

以下そのコード抜粋。

import java.text.DecimalFormat;
import java.lang.StringBuffer;

public static zeroPadding(int paddingNum, String num) {
 StringBuffer sb = new StringBuffer();
 String zero = "0";

 for(int count=0; count  sb.append(zero);
 }
 DecimalFormat df = new DecimalFormat(sb.toString());
 return df.format(Integer.parseInt(num));
}

■関連サイト
与太侍 ≪21世紀の月を眺めて≫

擬似プリミティブ型とインスタンス化

文字列はクラス java.lang.String 型のれっきとしたオブジェクトなのですが、頻繁に使うので、プリミティブ型と同様の記法も許されており、その場合は、equals() と == が、ある程度までは、同じ結果を返すような仕組みを持っています。

オブジェクトは、一般的には次の書式で生成(インスタンス化)します。

// 一般論
クラス名 変数名 = new クラス名(引数);
// String型の場合
String str = new String("文字列");

文字列は頻繁に使うために特例措置がなされていて、次のように二重引用符で文字列をくくると、自動的に String 型オブジェクトを生成してくれます。

String str = "文字列";

この書式が通常のオブジェクト生成と異なるのは、ここで記述した文字列と等価な String 型オブジェクトが既に存在していれば、既存の String 型オブジェクトを参照する ID を代入するということです。内部的には次の手順が踏まれています。

1. 既存の文字列に同じものがないかどうか評価
2. もし既に存在していれば、既存のオブジェクトへの参照を代入
3. もし既存の文字列に等価なものが存在しなければ、新たに生成して、そのオブジェクトへの参照を代入

続きでサンプルをご覧ください...
続きを読む...

同じ文字列の比較でTrueにならない場合がある

compare.png
この画像同様、== 演算子は、変数の値を比較して、ブーリアン型の値(true/false)を返します。
参照型変数の場合は、変数値は実体を参照するIDなので、それが異なる領域に保持されたデータを参照している場合は偽を返します。

例えば、文字列 "Hello" が、メモリ上で別の実体として二箇所に存在していれば、 == 演算子でそれらの変数を比較すれば、評価結果は偽になります。

参照型変数のメモリの取られ方

参照型の場合は、当該変数名で確保されたメモリ上の領域には、別の領域に存在する実体へのポインタ(識別する為の ID)が代入されています。
変数名とその値はスタックと呼ばれる領域に書き込まれ、変数値が参照する実体はヒープと呼ばれる領域に書き込まれます。

意外とこうゆうのって忘れがちになってしまいます。

Pickup Link!

COUNTER



RSSの登録はこちらからどうぞ。
RSS

ブログ内の検索

Google

プロフィール

Hisasann

Author:Hisasann
かなり走り書きなブログで申し訳ないです。個人のメモ程度に使っていますが、よかったら参考にしてくださいね。メールまってま~す。

相互リンク募集しています。 下記メアドまでメールください。
Rastaman@Mixi
Rastaman@コトノハ
Rastaman@テクノラティ

アクセスランキング

ブログパーツ

ブログランキング



ブロとも申請フォーム


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。