Linuxでサイトをつくる JAVAでランダムな文字列をつく

トップ ›  Linux

Linuxでサイトをつくる

JAVAでランダムな文字列をつく

2012年10月6日 


JAVAでランダムな数字をつくる場合、
import java.util.Random;
<略>
Random objRnd=new Random();
int intRan=objRnd.nextInt(2000);
<略>
というように記述すると2,000までの中で乱数を発生させランダムな数字をつくって「intRan」に値を渡してくれます。

しかし、文字列をランダムにつくることができません。

そこであるのがapashe commonsのライブラリーを使う方法です。

まず、「commons.apache.org」内にある「Lang」ライブラリーを使うので、そこをクリックして「http://commons.apache.org/lang/」に移動します。

そうするとページの真ん中より下くらいに「Download 3.1」というのがありますので、そこをクリックして移動するとダウンロードのページに移ります。

「commons-lang3-3.1-bin.tar.gz」と「commons-lang3-3.1-bin.zip」、「commons-lang-2.6-bin.tar.gz」と「commons-lang-2.6-bin.zip」があります(バージョンは執筆時のもの)。

JAVA5.0未満は「commons-lang-2」しか使えませんが、いずれも「Binaries」をダウンロードして、ダウンロードしたものを展開すると複数のファイルがありますが、今回使うのは「commons-langX-X.X.jar(Xはバージョン数字)」です。

■Windowsの場合

Tomcat直下の「lib」内にjarファイルを移してください。Windowsの場合、環境変数の設定が必要です。環境変数の「CLASSPATH」に「;%CATALINA_HOME%\lib\commons-langX-X.X.jar(Xはバージョン数字)」を加える必要があります。バージョンやTomcatの初期環境設定によって変わりますが、同様の環境変数の設定作業が必要と思われます。

※「\」は「¥」半角マークはPC上、同じ意味です。環境によっては「\」で表示される場合「¥」マークと同様と読み替えてください。

■Linux(REL6系)の場合

jspで動かす場合、そのjspのファイルを配置するところにある「WEB-INF」のフォルダ(ディレクトリ)内に(フォルダが無い場合は作成すること)、「lib」フォルダを作成してください。その中に「commons-langX-X.X.jar(Xはバージョン数字)」のjarファイルを置いて、Tomcatを再起動すると認識します。

なお、サーブレットをLinux上で作成する場合、環境変数の設定が必要になります。

■JSPでの動作

<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="org.apache.commons.lang3.RandomStringUtils" %>

<head>

<title>ランダム文字テスト</title>
</head>

<body>

<%
//アルファベットと数字のランダム
String strRand1=RandomStringUtils.randomAlphanumeric(50);
//アスキー文字のランダム
String strRand2=RandomStringUtils.randomAscii(50);
//アルファベットのみのランダム
String strRand3=RandomStringUtils.randomAlphabetic(50);
//数値のみのランダム
String strRand4=RandomStringUtils.randomNumeric(50);
%>

<%=strRand1%><br />
<%=strRand2%><br />
<%=strRand3%><br />
<%=strRand4%><br />
</body>
</html>

(50)は、50文字という意味です。特に数値のみの場合、javaのRandomと異なり文字数となるのでご注意ください。

また、importでは「commons-lang3-X.X.jar」を使う場合は、「org.apache.commons.lang3.RandomStringUtils」、

「commons-lang2-X.X.jar」を使う場合は、「org.apache.commons.lang.RandomStringUtils」となり異なります。

もし動作させて、「RandomStringUtils cannot be resolved」というエラーが出る場合は、上記のimportの記述違い、または、環境変数が通っていないことになります。

上記のJSPを実行すると以下のような例で表示されます。

b691OJTDsHUQ01XH697yMcMAjmbEEDYrh9G4fI8Wt6qcQwH4wS
;-Toh^J,+SE[!.$&nRhH@ sqAq#MvKs,vlZ=8~\/ cP\Z;>(6b
BfOfoJlegQePuhUmiSBrLPajcOEvgFmrYnVktNMTFKwBRKPczk
12058893188269404193410868710352742187509931958849

以上