获取唯一字符串

博客介绍了Java中生成唯一字符串的方法,包括取出17位当前时间戳加3位随机数字,使用Java提供的uuid,还可考虑获取当前IP地址、mac地址等组成唯一字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 考虑唯一字符串,取出17位当前时间戳  + 3位随机数字

 

//获取当前时间戳
    public static String getTimeStr(){
        StringBuffer sb = new StringBuffer();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        sb.append(sdf.format(new Date())).append((int) (Math.random() * 900) + 100);
        return sb.toString();//20190319222821840453
    }

 

java 提供的uuid

System.out.println(UUID.randomUUID().toString());//24d1a071-b514-4ba1-bc42-b1447bcb6359

 

还可以考虑获取当前IP地址、mac地址等组成唯一字符串

待续。。。

转载于:https://www.cnblogs.com/sangong/p/10562007.html

### 在 Unreal Engine 5 中生成唯一 ID 字符串 在 Unreal Engine 5 (UE5) 中,可以通过多种方式生成唯一字符串 ID。以下是几种常见的方法: #### 方法一:使用 `FGuid` 类 Unreal 提供了一个内置类 `FGuid` 来生成全局唯一标识符(GUID)。该类能够创建随机的 GUID 或基于特定算法生成。 ```cpp #include "Misc/Guid.h" // 创建一个新的 FGuid 对象并初始化为随机值 FGuid UniqueId = FGuid::NewGuid(); // 将其转换为字符串形式 FString UniqueIdAsString = UniqueId.ToString(); ``` 此方法利用了 UE 的核心库来生成一个几乎不可能重复的 UUID[^1]。 --- #### 方法二:组合时间戳与随机数 如果需要自定义逻辑生成唯一 ID,则可以结合当前的时间戳和随机数实现。 ```cpp #include "HAL/PlatformTime.h" #include "Math/RandomStream.h" FString GenerateUniqueId() { uint64 Timestamp = FPlatformTime::Cycles64(); // 获取高精度时间戳 FRandomStream RandomStream; int32 RandomNumber = RandomStream.RandRange(0, INT32_MAX); // 随机数范围 FString Id = FString::Printf(TEXT("T%llu_R%d"), Timestamp, RandomNumber); return Id; } // 调用函数生成唯一 ID FString UniqueId = GenerateUniqueId(); ``` 这种方法通过时间戳确保每次调用都不同,并加入随机数进一步降低冲突概率[^2]。 --- #### 方法三:使用 SQLite 数据库中的 `ROWID` 当项目涉及 SQLite 数据库时,可以直接依赖数据库引擎提供的隐式字段 `ROWID` 自动生成每条记录的唯一索引号。虽然这不是直接生成字符串的方式,但在某些场景下非常实用。 假设有一个表结构如下: ```sql CREATE TABLE MyTable ( Name TEXT, Value INTEGER ); ``` 每当向表中插入新数据时,SQLite 自动维护 `ROWID` 列作为每一行的唯一标识符。 --- #### 方法四:UUID 库扩展 对于更复杂的跨平台需求,还可以引入第三方 C++ UUID 库(如 Boost.UUID),并通过模块化集成到 UE 工程中。不过这种方式通常适用于高级开发人员或特殊用途。 --- ### 总结 上述四种方法各有优劣,具体选择决于实际应用场景和技术栈偏好。推荐优先考虑 **方法一** (`FGuid`) 和 **方法二** (时间戳+随机数),因为它们简单高效且完全兼容 UE 生态环境。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值