Parse.com用java创建objectId

问题描述 投票:0回答:1

我有parse.com项目,我想创建objectId。我发现了这个方法:randomString在这个链接:parse-server-cryptoUtils

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

java parse-platform
1个回答
1
投票

我已经在某处找到了这种方法并成功使用它。

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);
    }
}

附:您在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();
}
© www.soinside.com 2019 - 2024. All rights reserved.