FC2ブログ
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- / Top↑
文字列や数値を扱っていると意外に使うJava変数のタイプ別値変換サンプルです。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Javaプログラミングmini-tips-0003【Java変数タイプ別変換】
-----------------------------------------------------------------
知っていると便利?いつかは役立つ?……かも知れないMini TIPsです。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

これは私がJavaプログラミングをしている上で必要に迫られて使ってきたものを単純にまとめてきた備忘録です。私は忘れっぽいタチなので今でも時折このメモを見返して使用しています。単純転送できる変数はいいのですが、小技を使わないと転送できない変数や、これでいいんだっけ?なメモ集になります。

<お断り>
・Javaコードはバージョンによって使用に影響を受ける可能性があります。
 (バージョンによって未サポートのためエラーとなるコードも存在します)
・当サンプルはEclipse使用前提のためimportステップは省略しています。


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
String
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
String → Int その1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
C_Integer = Integer.valueOf(C_String);

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
String → Int その2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
F_model = Integer.parseInt(C_String.substring(0,7)));

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
String → Double
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//* String 999.99値をdouble値に変換
Ctn_hajime = Double.valueOf( DATA_K );


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
long
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
long → Int
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
int C_miri = (int)(C_jiakanhen % 1000L );


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Int
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Int → String (フォーマットしながら)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
java.text.DecimalFormat df000 = new java.text.DecimalFormat("000");
String C_1 = df000.format(C_1ke);

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Int → String (そのまま)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
String W_atai_moji = String.valueOf(year);

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Int → Double
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
double w_Kka = (double)C_KDAKA;


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Double
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Double → String その1(そのまま)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//* 文字列変換
String W_atai_moji = String.valueOf(C_atai);

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Double → String その2 (フォーマットしながら)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
java.text.DecimalFormat df8_5 = new java.text.DecimalFormat("########0.00000");
String W_Sho = df8_5.format(C_atai);

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Double → Int 小数点以下を無くす
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
W_I_HURI = (int)W_D_HURI;


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Double → long 小数点以下を無くす
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//* Double → long 小数点以下を無くす
long Lwait = 0;
Lwait = (long)44100.4;
System.out.println( "(long)44100.4" +" = "+Lwait);

<<<結果>>>
Lwait = (long)44100.4 = 44100

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Double → long Doubleの計算結果の小数点以下を無くす
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
System.out.println( "(44100L - (44100L / 1000L * 1000L)) * 0.333 ="
+(44100L - (44100L / 1000L * 1000L)) * 0.333);
long Lwait = (long)((44100L - (44100L / 1000L * 1000L)) * 0.333);
System.out.println( "(long)((44100L - (44100L / 1000L * 1000L)) * 0.333) = " +Lwait);

<<<結果>>>
(44100L - (44100L / 1000L * 1000L)) * 0.333 =33.300000000000004
(long)((44100L - (44100L / 1000L * 1000L)) * 0.333) = 33

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Double → Int 小数点以下を四捨五入する
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
System.out.println("**************************************" ,true);
System.out.println("* double値の四捨五入、切り上げ、切り捨て" ,true);
System.out.println("**************************************" ,true);
double w = 25.64;
System.out.println("元の値 ="+w ,true); //* 改行
System.out.println("切り上げ=" +(int)Math.ceil(w) ,true); //* 切り上げ
System.out.println("四捨五入=" +(int)Math.round(w) ,true); //* 四捨五入
System.out.println("切り捨て=" +(int)Math.floor(w) ,true); //* 切り捨て
<<<結果>>>
**************************************
* double値の四捨五入、切り上げ、切り捨て
**************************************
元の値 =25.64
切り上げ=26
四捨五入=26
切り捨て=25


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Calendar
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//日付・時刻取得 Date → String
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//* 日付・時刻取得(コンソール用文字列)*************
Date sdate = new Date();
SimpleDateFormat sdatef = new SimpleDateFormat("yyyyMMdd-HH:mm ");
String W_Lyyyymmddhhmm = sdatef.format(sdate);
System.out.println("yyyyMMdd-HH:mm=" + W_Lyyyymmddhhmm);

<<<結果>>>
yyyyMMdd-HH:mm=20140605-21:36


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//日付・時刻取得 Calendar → Int
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GregorianCalendar cal = new GregorianCalendar();
int C_YYYY = cal.get(Calendar.YEAR);
//* MONTHでの最初の値(1月)は「0」から開始される
int C_MM = cal.get(Calendar.MONTH) + 1;
int C_DD = cal.get(Calendar.DATE);
int C_hh = cal.get(Calendar.HOUR_OF_DAY);
int C_mm = cal.get(Calendar.MINUTE);
int C_ss = cal.get(Calendar.SECOND);
int C_sss = cal.get(Calendar.MILLISECOND);
System.out.println(C_YYYY+"年"+C_MM+"月"+C_DD+"日"+" - "
+C_hh+"時"+C_mm+"分"+C_ss+"."+C_sss+"秒");

<<<結果>>>
2014年6月5日 - 21時36分40.68秒


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//曜日を求める calendar → String 曜日
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
int yyyy=C_YYYY, mm=C_MM, dd=C_DD; //*上の値を使用
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(yyyy, mm-1, dd); // 引数: 1月: 0, 2月: 1, ...(月数は0から始まる)
int C_youbi = calendar.get(Calendar.DAY_OF_WEEK);
String youbi = "";
switch (C_youbi){ case 1: youbi = "日"; break;
case 2: youbi = "月"; break;
case 3: youbi = "火"; break;
case 4: youbi = "水"; break;
case 5: youbi = "木"; break;
case 6: youbi = "金"; break;
case 7: youbi = "土"; break; }
System.out.println(yyyy+"年"+(mm)+"月"+dd+"日は" + youbi+"曜日です");

<<<結果>>>
2014年6月5日は木曜日です


--- 以上 ---


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
当作業の実行環境
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◆オペレーティングシステム:CentOS release 5.9 (Final) CPU:32bit メモリ:512MB
◆Java SE Development Kit 8
(JREの環境)
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode, sharing)
2014.09.28 / Top↑
Secret(管理者にだけ表示を許可する)


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