社内SEの徒然なる日記

Javaで文字列の右から何文字取得ってやってみた

■ 文字列操作

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 ---

スポンサードリンク

PageTop

コメント


管理者にだけ表示を許可する