邮件收件人去重 (aaa@qq.com;bbb@qq.com;aaa@qq.com)

本文介绍了一个Java方法,用于从字符串中移除指定符号隔开的重复元素,保持唯一性。该方法通过遍历和比较来实现,适用于处理带有特定分隔符的文本数据。

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

public static String removeDuplicate(String str ,String symbol){
String result = null;
try {
if(StringUtils.hasText(str) && (symbol != null) ){
if(str.indexOf(symbol) >= 0){
String[] strs = str.split(symbol);
for(int i=0;i<strs.length;i++){
boolean isDuplicate = true;
for(int j=i+1;j<strs.length;j++){
if(strs[i].equals(strs[j])){
isDuplicate = false;
}
}
if(isDuplicate){
if( result == null){
result = strs[i];
}else{
result =result+symbol+ strs[i];
}
}
}
}else {
result = str;
}
}else {
result = str;
}
} catch (Exception e) {
result = str;
throw new RuntimeException(e);
}
 
return result;
}

RToken通常用于微信OAuth登录,其中`@GT`是一个特定前缀,表示这是一个全局唯一标识符(Global Trade Token)。`aaa.aaa.aaa`这部分是经过加密处理的参数。在Java中,如果你想要解码这种形式的RToken,你需要先掉前缀`@GT`,然后按照微信提供的JWT(JSON Web Tokens)标准进行解密。 首先,你需要确保你有微信的JWT解密库,如`jwt4j`或`java-jwt`。解码过程一般包括以下几个步骤: 1. **分离Token头和有效负载**: ```java String token = "RTOKEN"; // 假设从微信接口获取到的完整RToken String decodedToken = token.substring(3); // 掉@GT前缀 ``` 2. **解析Token**: JWT通常由三部分组成:头部、载荷(Payload)和签名。载荷是Base64编码的数据,你可以使用`atompayload.AtomPayload`来解析: ```java AtomPayload atomPayload = new Atompayload(decodedToken); Map<String, Object> jwtClaims = atomPayload.getClaimsAsMap(); ``` 3. **获取加密数据**: 载荷中的加密数据通常存储在`iat`(签发时间)、`exp`(过期时间)等字段之外,可能需要查看文档找到具体的键名,例如`userinfo`: ```java byte[] encryptedData = (byte[]) jwtClaims.get("userinfo"); ``` 4. **解密数据**: 使用微信提供或者第三方库来解密这个数据,这通常是使用对称加密算法(如RSA),具体操作依赖于实际的加密方式和库。 注意,上述步骤假设了`userinfo`字段包含加密数据,实际解码过程可能会因微信API版本或配置的不同而有所变化。如果你没有相关的库,可能需要联系微信官方获取正确的解密工具和方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值