
■ 文字列操作
Javaには、高度な文字列操作を行うAPIがいくつもあるのですが、意外と簡単な文字列操作を行う処理がなかったりします。今回で言えば、文字列(String型)の右から**文字取得するって言う操作です。
左からってのはあるんですけどねぇ。
■ やってみた
であるならば、ゴリゴリと何とかするだけの話です。
下記は、文字列(管理番号)の右から6文字取得するサンプルです。
なお、前提は「文字列(管理番号)には半角数値しか入らない」です。
// 戻り値の宣言
String managerNum = “”;
// 管理番号の情報を取得
String workManaNum = “007123456”;
// 文字数を取得
int workLength = workManaNum.length();
// 管理番号が6文字以下
if (workLength <= 6) {
// 管理番号をそのまま設定
managerNum = workManaNum;
// 管理番号が6文字を超える
} else {
// 管理番号の右側6文字を設定
managerNum = workManaNum.substring(workLength - 6, workLength);
}
■ 解説
右から何文字は無くても、指定した位置の文字を取得するsubstringってメソッドはあります。後は、全体の文字数を取得するlengthメソッドと併用して取得位置を調整してやれば良い訳です。
なのですが、元の文字数が取得したい文字数よりも小さかった場合、substringメソッドが異常終了しちゃうので、事前に文字数を確認するif文を使っています。まぁ、try catchでエラーを拾っても良い気がしますけど、例外を発生させて処理を分岐させるって手法、個人的に好きじゃないのでこうしました。
解説と言っても、Javaというよりもプログラミングの基本レベルなので、詳しくは書きません。
■ 後書き
そういえば、Javaで開発する時にJ2EE(今は、Jave EEでしたっけ?)のバージョンを意識してプログラミングしてますか?私は、JDKのコンパイルレベルとかは意識してたのですが、J2EEについては全く意識してませんでした(確か、**だったはずって程度)。
この前、とある事情でこのバージョンを聞かれたのですが、この確認方法が解らなくて四苦八苦しました(というか、してます)。私は、10年くらい前にスクラッチ開発した基幹システム(開発はベンダーに依頼)の保守や追加開発しか経験が無いので、この辺りはさっぱりです。
そもそも、Javaって「Write once, run Anywhere」って謳ってませんでしたっけ?であるなら、完全な下位互換を実現して、下らない環境調査に手間を掛けさせないで欲しいものです。
この言葉。最近では空々しく聞こえます。
投稿記事の一覧:http://harikofu.web.fc2.com/
--- blog end ---
スポンサードリンク


