Parse.com 使用 java 创建 objectId

Parse.com create objectId with java

我有 parse.com 个项目,我想创建 objectId。我在这个link:parse-server-cryptoUtils中找到了这个方法:randomString

export function randomString(size: number): string {
  if (size === 0) {
    throw new Error('Zero-length randomString is useless.');
  }
  const chars = ('ABCDEFGHIJKLMNOPQRSTUVWXYZ' +
               'abcdefghijklmnopqrstuvwxyz' +
               '0123456789');
  let objectId = '';
  const bytes = randomBytes(size);
  for (let i = 0; i < bytes.length; ++i) {
    objectId += chars[bytes.readUInt8(i) % chars.length];
  }
  return objectId;
}

如何在 java 上编写此方法?我无法转换此 bytes.readUInt8.

我不知何故发现了这种方法并成功地使用了它。

public class RandomString {

    private static final char[] SYMBOLS = "0123456789abcdefghijklmnopqrstuvwxyz".toCharArray();

    private final Random random = new Random();
    private final char[] buf;

    public RandomString(int length) {
        assert length > 0;
        buf = new char[length];
    }

    String nextString() {
        for (int i = 0; i < buf.length; i++) {
            buf[i] = SYMBOLS[random.nextInt(SYMBOLS.length)];
        }
        return new String(buf);
    }
}

P.S. 您在 Java 中的示例可能类似于此快照:

public static String randomString(int size) {
    if (size <= 0)
        throw new RuntimeException("Zero-length randomString is useless.");

    final char[] chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".toCharArray();

    StringBuilder objectId = new StringBuilder();
    Random random = new Random();

    for (int i = 0; i < size; ++i)
        objectId.append(chars[random.nextInt(Integer.MAX_VALUE) % chars.length]);

    return objectId.toString();
}