java - 将 String 转换为 int 并再次转换回 String
问题描述
我有像 s="DLP_Classification_Rules" 这样的字符串来转换一些整数,并且再次使用该整数我必须转换回像 DLP_Classification_Rules 这样的相同字符串。
有没有办法使用base64或其他东西来做这样的事情。?
解决方案
尝试这个。
static BigInteger strToInt(String s) {
return new BigInteger(s.getBytes(StandardCharsets.UTF_8));
}
static String intToStr(BigInteger i) {
return new String(i.toByteArray(), StandardCharsets.UTF_8);
}
和
String s="DLP_Classification_Rules";
BigInteger i = strToInt(s);
System.out.println(i);
String r = intToStr(i);
System.out.println(r);
输出:
1674664573062307484602880374649592966384086501927007577459
DLP_Classification_Rules
或者你可以像这样创建一个字符串池。
public class StringPool {
private final Map<String, Integer> pool = new HashMap<>();
private final List<String> list = new ArrayList<>();
public int stringToInteger(String s) {
Integer result = pool.get(s);
if (result == null) {
result = pool.size();
pool.put(s, result);
list.add(s);
}
return result;
}
public String integerToString(int i) {
if (i < 0 || i >= pool.size())
throw new IllegalArgumentException();
return list.get(i);
}
}
和
StringPool pool = new StringPool();
String s = "DLP_Classification_Rules";
int i = pool.stringToInteger(s);
System.out.println(i);
String r = pool.integerToString(i);
System.out.println(r);
输出:
0
DLP_Classification_Rules
推荐阅读
- android - 循环完成迭代时的 RxJava 调用方法
- sql-server - 在 SQL SERVER 中使用“SELECT @daynamic_variable_name”执行 SQL
- ghostscript - 将 RGB pdf 转换为 CMYK 保留 pdf
- azure - 如何将 Azure IoT Hub 设备孪生与设备更改同步?
- ruby-on-rails - 无法访问 RSpec 中的非持久关联
- excel - 合并两列相邻行中具有相同数据的单元格
- c# - 如何从切换组中选择切换?
- javascript - 如何每 2 秒调用一次 API,直到异步函数中的预期结果或超时
- azure - 物联网集线器服务在启动时获取旧数据
- cmake - CMake 存根宏