Java предоставляет способ сделать это непосредственно. Если Вы не хотите тире, их легко разделить. Просто используйте uuid.replace("-", "")
import java.util.UUID;
public class randomStringGenerator {
public static void main(String[] args) {
System.out.println(generateString());
}
public static String generateString() {
String uuid = UUID.randomUUID().toString();
return "uuid = " + uuid;
}
}
Вывод:
uuid = 2d7428a6-b58c-4008-8575-f05549f16316
Это невозможно.
Простой случай, демонстрирующий мою точку зрения (предполагая, что a, b и c все 1-битные):
Если 'b' равно 1, ' c 'всегда будет 1, вы не можете определить значение' a '.
Вы не можете надежно вернуться назад. Например, a = 0010 и b = 0011. a OR b = 0011. Тот же результат верен, если a было другим (например, 0001 или 0011).
Это невозможно. Невозможно определить, что будет "а"
Это невозможно, операция или необратима. Существует много разных значений a, которые дают одно и то же значение для c.
Вы можете получить одно возможное значение a, выполнив операцию and с дополнением b.
a = c & ~b
Поскольку OR 1 всегда 1, а OR 0 всегда a, вы можете найти значение a, только если b равно 0.
Изменить: AND и OR являются операциями с потерями (не могут всегда быть обратным). В то время как XOR и NOT являются обратимыми / без потерь.
с математической точки зрения просто невозможно вывести A из C и B. если для n-го бита у вас есть значение 1 в C, а в B вы не можете знать, равен ли n-й бит в A 0 или 1