Skip to content

Instantly share code, notes, and snippets.

@kelsos
Created June 27, 2015 09:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kelsos/403f92c7fa41c88c0289 to your computer and use it in GitHub Desktop.
Save kelsos/403f92c7fa41c88c0289 to your computer and use it in GitHub Desktop.
Randomize info
package net.arx.communicator_library.model.contacts;
import android.util.Base64;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Random;
public class RandomGenerator {
private static RandomGenerator instance;
private byte[] avatar;
private Random random;
private List<Character> chars;
private RandomGenerator() {
//default empty const
String image =
"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";
avatar = Base64.decode(image, Base64.NO_WRAP);
random = new Random();
chars = new ArrayList<>();
chars.add(' ');
chars.add('-');
chars.add('_');
chars.add('.');
chars.add(',');
chars.add('@');
}
public static RandomGenerator getInstance() {
if (instance == null) {
instance = new RandomGenerator();
}
return instance;
}
public static int randBetween(int start, int end) {
return start + (int) Math.round(Math.random() * (end - start));
}
public String randomString(final int length) {
String subset = "abcdefghijklmnopqrstuvwxyz";
return getRandomString(length, subset);
}
private String getRandomString(final int length, final String subset) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++) {
final int index = random.nextInt(subset.length());
char c = subset.charAt(index);
sb.append(c);
}
return sb.toString();
}
public String randomize(String original, boolean capitalizeFirst) {
String subset = "abcdefghijklmnopqrstuvwxyz";
StringBuilder sb = new StringBuilder();
for (int i = 0; i < original.length(); i++) {
final char charAt = original.charAt(i);
if (chars.contains(charAt)) {
sb.append(charAt);
} else {
final int index = random.nextInt(subset.length());
char c = subset.charAt(index);
if (capitalizeFirst && Character.isUpperCase(charAt)) {
c = Character.toUpperCase(c);
}
sb.append(c);
}
}
return sb.toString();
}
public String randomNumbericString(final int length) {
String subset = "1234567890";
return getRandomString(length, subset);
}
public byte[] getAvatar() {
return avatar;
}
public String randomUrl(String url) {
final int last = url.lastIndexOf(".");
final int first = url.indexOf(".");
final String part = url.substring(first, last);
return String.format("http://%s.net", randomString(part.length()));
}
public String getRandomBday() {
GregorianCalendar gc = new GregorianCalendar();
int year = randBetween(1950, 2010);
gc.set(Calendar.YEAR, year);
int dayOfYear = randBetween(1, gc.getActualMaximum(Calendar.DAY_OF_YEAR));
gc.set(Calendar.DAY_OF_YEAR, dayOfYear);
return String.format("%d-%d-%d", gc.get(Calendar.YEAR), gc.get(Calendar.MONTH),
gc.get(Calendar.DAY_OF_MONTH));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment