ランダム文字列生成アルゴリズム
3565 ワード
IOSアルゴリズム:
JAVA実現:
1つの文字セットを与え、ランダムに生成された文字列の長さを与え、ランダムに文字列を生成することができる.
例えば{'a','......,'z'}および長さ5では、長さ5の文字列がランダムに生成される.
[java]
view plain
copy
package xiazdong.util;
import java.util.Random;
/*与えられたcharセットに基づいてランダムな文字列*/を生成する public class StringWidthWeightRandom {
private Random widthRandom = new Random(); private int length;
private char[] chars; private Random random = new Random();
public StringWidthWeightRandom(char[] chars) { this.chars = chars;
}
//パラメータは生成された文字列の長さであり、所与のchar集合に基づいて文字列を生成する public String getNextString(int length){
char[] data = new char[length];
for(int i = 0;i < length;i++){
int index = random.nextInt(chars.length); data[i] = chars[index];
} String s = new String(data);
return s; }
}
テストコード:
[java]
view plain
copy
package test.com.sap.prd.util;
import junit.framework.TestCase;
import org.junit.Test;
import com.sap.prd.util.StringWidthWeightRandom;
public class StringWidthWeightRandomTest extends TestCase {
@Test public void testGetNextString()throws Exception{
StringWidthWeightRandom random = new StringWidthWeightRandom(new char[]{'A','B','C','D','E','F','G'});
for(int i=1;i<10;i++){ System.out.println(random.getNextString(i));
} }
}
結果:
[java]
view plain
copy
F CC
EGE CADA
CFBFC DBBCFE
BFEADFA FDEEDACE
EEFFGFBEG
char
data[NUMBER_OF_CHARS];
for
(
int
x=0;x<NUMBER_OF_CHARS;data[x++] = (
char
)(
'A'
+ (arc4random_uniform(26))));
return
[[NSString alloc] initWithBytes:data length:NUMBER_OF_CHARS encoding:NSUTF8StringEncoding];
JAVA実現:
1つの文字セットを与え、ランダムに生成された文字列の長さを与え、ランダムに文字列を生成することができる.
例えば{'a','......,'z'}および長さ5では、長さ5の文字列がランダムに生成される.
[java]
view plain
copy
package xiazdong.util;
import java.util.Random;
/*与えられたcharセットに基づいてランダムな文字列*/を生成する
private Random widthRandom = new Random();
private char[] chars;
public StringWidthWeightRandom(char[] chars) {
}
//パラメータは生成された文字列の長さであり、所与のchar集合に基づいて文字列を生成する
int index = random.nextInt(chars.length);
}
return s;
}
テストコード:
[java]
view plain
copy
package test.com.sap.prd.util;
import junit.framework.TestCase;
import org.junit.Test;
import com.sap.prd.util.StringWidthWeightRandom;
public class StringWidthWeightRandomTest extends TestCase {
@Test
StringWidthWeightRandom random = new StringWidthWeightRandom(new char[]{'A','B','C','D','E','F','G'});
for(int i=1;i<10;i++){
}
}
結果:
[java]
view plain
copy
F
EGE
CFBFC
BFEADFA
EEFFGFBEG