字符串转数字生成19位的唯一的纯数字
时间: 2023-07-04 13:11:36 浏览: 105
可以使用时间戳和随机数的组合来生成一个19位的唯一纯数字。具体实现如下:
1.获取当前时间戳,精确到毫秒级别。
2.将时间戳转换成字符串类型,并截取前13位。
3.生成一个6位的随机数。
4.将步骤2和步骤3得到的字符串拼接在一起,得到一个长度为19的字符串。
5.将拼接后的字符串转换成数字类型,即可得到一个19位的唯一纯数字。
下面是Python代码示例:
```python
import time
import random
def get_unique_number():
timestamp = str(int(time.time() * 1000))[:13]
rand_num = str(random.randint(100000, 999999))
unique_num = timestamp + rand_num
return int(unique_num)
# 测试代码
print(get_unique_number())
```
注意:这种方式生成的数字虽然唯一,但不是连续的,也不是有序的。如果需要有序的、连续的数字,可以考虑使用数据库的自增ID或者Redis的自增计数器。
相关问题
c# 生成19位纯数字的唯一ID
要生成一个纯数字的唯一ID,你可以使用 `Guid` 类生成一个UUID,并将其转换为一个19位的纯数字ID。下面是一个示例代码:
```csharp
using System;
public class Program
{
public static void Main()
{
Guid guid = Guid.NewGuid();
string uniqueId = Convert.ToBase64String(guid.ToByteArray());
uniqueId = uniqueId.Replace("/", "").Replace("+", "").Substring(0, 19);
long numericId = long.Parse(uniqueId);
Console.WriteLine(numericId);
}
}
```
这段代码和前面的代码非常相似,只是最后将字符串ID转换为一个长整型数字ID,通过 `long.Parse()` 方法实现。这样就能够得到一个长度为19位的纯数字唯一ID。
需要注意的是,由于 `long` 类型的长度限制,19位的唯一ID也可能不是完全唯一的,但在大多数情况下仍然能够满足需求。
Java生成由4位字母加日期加4位数字的唯一字符串
可以使用Java中的UUID类来生成唯一标识符,然后再拼接日期和数字,最后得到一个由4位字母加日期加4位数字的唯一字符串。示例代码如下:
```java
import java.util.UUID;
import java.text.SimpleDateFormat;
import java.util.Date;
public class UniqueStringGenerator {
public static String generate() {
// 生成UUID
String uuid = UUID.randomUUID().toString();
// 截取前4位字母
String letters = uuid.substring(0, 4);
// 获取当前日期
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String date = sdf.format(now);
// 生成4位随机数字
int num = (int)(Math.random() * 9000) + 1000;
// 拼接字符串
String uniqueString = letters + date + num;
return uniqueString;
}
}
```
使用示例:
```java
String uniqueString = UniqueStringGenerator.generate();
System.out.println(uniqueString);
```
输出结果可能为:`2b5e202106159181`