[Salesforce]ランダム文字列生成メッソド

Salesforceでランダム文字列生成メッソドを共有します。

	public String getRandomString(integer LengthRequired){
		String small = 'abcdefghijklmnopqrstuvwxyz';
	    String big = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
	    String num = '0123456789';
	    String max = small + big + num;
	    String result = '';
	    integer position;
	    
	    List<String> random = new List<String> ();
	    // 英小文字から最低1文字選択
	    position = Integer.valueof(String.valueof(Math.roundToLong((small.length()-1)*Math.random())));
	    random.add(small.substring(position,position+1));
	    // 英大文字から最低1文字選択
	    position = Integer.valueof(String.valueof(Math.roundToLong((big.length()-1)*Math.random())));
	    random.add(big.substring(position,position+1));
	    // 数字から最低1文字選択
	    position = Integer.valueof(String.valueof(Math.roundToLong((num.length()-1)*Math.random())));
	    random.add(num.substring(position,position+1));
	    
	    // 残りの文字を全文字を対象にランダムで選択
	    for(Integer i = 0; i < LengthRequired - 3; i++) {
	        position = Integer.valueof(String.valueof(Math.roundToLong((max.length()-1)*Math.random())));
	        random.add(max.substring(position,position+1));
	    }
	    
	    // 文字列の並び回を最低回数繰り返す
	    for(Integer i=0; i< 100; i++) {
	    	Integer bef = Integer.valueof(String.valueof(Math.roundToLong((random.size()-1)*Math.random())));
	    	Integer aft = Integer.valueof(String.valueof(Math.roundToLong((random.size()-1)*Math.random())));
	    	String tmp = random[bef];
	    	random[bef] = random[aft];
	    	random[aft] = tmp; 
	    }
	    
	    for(String s : random) {
	    	result += s;
	    }
	    
	    return result;
		
	}
	

メッソド呼び出し

system.debug(getRandomString(6))

メッソド呼び出し結果

例えば、abcdef

投稿者: kinkun

保有資格 Salesforce Certified Platform App Builder T Salesforce Certified Platform Developer I Salesforce Certified Platform Developer II Salesforce Certified Administrator

コメントを残す

メールアドレスが公開されることはありません。