上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- / Top↑
Javaで文字列や数値を扱う時に最初に知っていると意外と役立つ命令集です。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Javaプログラミングmini-tips-0002【Java参考命令】
-----------------------------------------------------------------
知っていると便利?いつかは役立つ?……かも知れないTIPsです。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

これは私がJavaプログラミングをしている上で必要に迫られて使ってきたものを単純にまとめてきた備忘録です。私は忘れっぽいタチなので今でも時折このメモを見返して使用しています。

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


//****************************************************************************
//* 桁数を求める
//****************************************************************************
int C_length1 = C_outstrings1.length();

//****************************************************************************
//* 1文字変換
//****************************************************************************
String C_retS = W_atai_moji.replace(".", ""); //* ピリオドを消す

//****************************************************************************
//* 文字列の抜き出し
//****************************************************************************
C_retSS = C_retS.substring(0, W_pichi+2);

//****************************************************************************
//* 文字の位置を求める(正順)
//****************************************************************************
int p = W_Sho.indexOf("."); //"."の位置 先頭0
int p = W_Sho.indexOf(".", 0); //"."の位置 先頭0

//****************************************************************************
//* 文字の位置を求める(逆順)
//****************************************************************************
int p = W_Sho.lastIndexOf("."); //"."の位置 先頭0
int p = W_Sho.lastIndexOf(".",23); //"."の位置 先頭0

//****************************************************************************
//* 絶対値を求める
//****************************************************************************
w_atai += Math.abs(w_sa);

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

//****************************************************************************
//* どこでも使える時間待ち(wait)
//****************************************************************************
try{Thread.sleep(1000L);} catch(InterruptedException e){}; //* 1秒

//* 条件が終わるまで待つ
while( C_LESSON ){ try{Thread.sleep( 100 );} catch(InterruptedException e){}; }

//*** 文字条件待ち(テキストエリアの表示待ち)
while( !(TextArea.getText().lastIndexOf("処理を選択して下さい!")>=0))
{ try{Thread.sleep( 100 );} catch(InterruptedException e){}; }

//****************************************************************************
//* テーブル値のクリア
//****************************************************************************
for(int i=0; i<7; ++i) {C_trloss[i] = 0.0;}

//****************************************************************************
//* switch
//****************************************************************************
私は初めて使った時に使い方が解らず痛い目にあった命令です。
条件毎に必ずbreakを入れないと以降の全ての命令が実行されます。

下の例ではnumが
0 の場合:0が
1 の場合:1が
2 の場合:2が
3 の場合:3が
4 の場合:3が
5 の場合:3が
以外の場合:?"が suujiにセットされます。

switch (num){
case 0: suuji = "0"; break;
case 1: suuji = "1"; break;
case 2: suuji = "2"; break;
case 3:
case 4:
case 5: suuji = "3"; break;
default :suuji = "?"; break;
}

//****************************************************************************
//* リプレイス (文字の置き換え)
//****************************************************************************
String C_retS = W_atai_moji.replace(".", ""); //* ピリオドを消す
String C_retS = W_atai_moji.replace(".", ","); //* ピリオドをカンマにする

//****************************************************************************
//* 文字の比較
//****************************************************************************
String A = "ABC"; String B = "DEF"; String C = "ABC"; String D = "ABC";
System.out.println("******* Stringの比較(==) A="+A +" B="+B +" C="+C +" D="+D);
//* 文字列の比較(==)
if(A==B){System.out.println("A:B equal");} else {System.out.println("A:B not equal");}
if(C==D){System.out.println("C:D equal");} else {System.out.println("C:D not equal");}
//* 文字列の比較(.equals)
System.out.println("******* Stringの比較(.equals) A="+A +" B="+B +" C="+C +" D="+D);
if(A.equals(B)){System.out.println("A:B equal");} else {System.out.println("A:B not equal");}
if(C.equals(D)){System.out.println("C:D equal");} else {System.out.println("C:D not equal");}
//* charの比較(==)
char a = 'a'; char b = 'b'; char c = 'c'; char d = 'c';
System.out.println("******* charの比較(==) a="+a +" b="+b +" c="+c +" d="+d);
if(a==b){System.out.println("a:b equal");} else {System.out.println("a:b not equal");}
if(c==d){System.out.println("c:d equal");} else {System.out.println("c:d not equal");}

<<<<<結果>>>>>>>>
******* Stringの比較(==) A=ABC B=DEF C=ABC D=ABC
A:B not equal
C:D equal
******* Stringの比較(.equals) A=ABC B=DEF C=ABC D=ABC
A:B not equal
C:D equal
******* charの比較(==) a=a b=b c=c d=c
a:b not equal
c:d equal

◆(注釈)◆
初心者の頃痛い目にあっていてよく覚えているのですが、少し前のバージョンでは「Stringの比較(==)」で「if(C==D)」の比較演算子であればイコールにならなかった仕様だったと記憶していますが、versionも"1.8.0"ともなるとイコールになるように改正されたのでしょうか?(膨大な最新資料[英文]の中からは確認する気力さえ起きません…。何度も見返したのですが間違いではなさそうです…)

--- 以上 ---


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
当作業の実行環境
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◆オペレーティングシステム: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.21 / Top↑
Secret(管理者にだけ表示を許可する)


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