在 Java 中使用一组固定字母将 long 编码/解码为字符串

2024-04-03

给定一组任意字母

String range = "0123456789abcdefghijklmnopABCD#";

我正在寻找两种从长 字符串进行编码/解码的方法

String s = encode( range, l );

and

long l = decode( range, s );

So decode(range, encode(range, 123456789L)) == 123456789L

如果范围是“0123456789”,那就是通常的编码方式。


以下代码可以满足您的需要:

static long decode(String s, String symbols) {
    final int B = symbols.length();
    long num = 0;
    for (char ch : s.toCharArray()) {
        num *= B;
        num += symbols.indexOf(ch);
    }
    return num;
}
static String encode(long num, String symbols) {
    final int B = symbols.length();
    StringBuilder sb = new StringBuilder();
    while (num != 0) {
        sb.append(symbols.charAt((int) (num % B)));
        num /= B;
    }
    return sb.reverse().toString();
}
public static void main(String[] args) {
    String range = "0123456789abcdefghijklmnopABCD#";
    System.out.println(decode(encode(123456789L, range), range));
    // prints "123456789"

    System.out.println(encode(255L, "0123456789ABCDEF"));
    // prints "FF"

    System.out.println(decode("100", "01234567"));
    // prints "64"
}

请注意,这本质上是使用一组自定义符号的基本转换。

相关问题

  • 不同字母长度的替换密码 https://stackoverflow.com/questions/2863954/substitution-cypher-with-different-alphabet-length/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Java 中使用一组固定字母将 long 编码/解码为字符串 的相关文章

  • AES 加密 Java/plsql

    我需要在Java和plsql DBMS CRYPTO for Oracle 10g 上实现相同的加密 解密应用程序 两种实现都工作正常 但这里的问题是我对相同纯文本的加密得到了不同的输出 下面是用于加密 解密过程的代码 Java 和 PLS
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • manifest.mf 文件的附加内容的约定?

    Java JAR 中的 MANIFEST MF 文件是否有任何超出 MANIFEST MF 约定的约定 JAR规范 http download oracle com javase 1 4 2 docs guide jar jar html
  • CXF Swagger2功能添加安全定义

    我想使用 org apache cxf jaxrs swagger Swagger2Feature 将安全定义添加到我的其余服务中 但是我看不到任何相关方法或任何有关如何执行此操作的资源 下面是我想使用 swagger2feature 生成
  • 在浏览器中点击应用程序时播放框架挂起

    我正在 Play 中运行一个应用程序activator run 也许 5 次中有 3 次 它会挂起 当我去http localhost 9000 它就永远坐在那里旋转 我看到很多promise timed out错误也 我应该去哪里寻找这个
  • R在Windows平台Rstudio上打印data.frames中的UTF-8代码

    当数据框中存在UTF 8字符时 将无法正常显示 例如 以下内容是正确的 gt U6731 1 朱 但是当我将其放入数据框中并打印出来时 它是 gt data frame x U6731 x 1
  • java中删除字符串中的特殊字符?

    如何删除字符串中除 之外的特殊字符 现在我用 replaceAll w s 它删除了所有特殊字符 但我想保留 谁能告诉我我该怎么办 Use replaceAll w s 我所做的是将下划线和连字符添加到正则表达式中 我添加了一个 连字符之前
  • 一种使用 Java Robot API 和 Selenium WebDriver by Java 进行文件上传的解决方案

    我看到很多人在使用 Selenium WebDriver 的测试环境中上传文件时遇到问题 我使用 selenium WebDriver 和 java 也遇到了同样的问题 我终于找到了解决方案 所以我将其发布在这里希望对其他人有所帮助 当我需
  • 为什么 re.findall 在查找字符串中的三元组项时不具体。 Python

    所以我有四行代码 seq ATGGAAGTTGGATGAAAGTGGAGGTAAAGAGAAGACGTTTGA OR 0 re findall r ATG 9 TAA TAG TGA seq 首先让我解释一下我正在尝试做什么 如果这令人困惑
  • Java中接口作为方法参数

    前几天去面试 被问到了这样的问题 问 反转链表 给出以下代码 public class ReverseList interface NodeList int getItem NodeList nextNode void reverse No
  • Spring Data 与 Spring Data JPA 与 JdbcTemplate

    我有信心Spring Data and Spring Data JPA指的是相同的 但后来我在 youtube 上观看了一个关于他正在使用JdbcTemplate在那篇教程中 所以我在那里感到困惑 我想澄清一下两者之间有什么区别Spring
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • Java - 不要用 bufferedwriter 覆盖

    我有一个程序可以将人员添加到数组列表中 我想做的是将这些人也添加到文本文件中 但程序会覆盖第一行 因此这些人会被删除 如何告诉编译器在下一个空闲行写入 import java io import java util import javax
  • Springs 元素“beans”不能具有字符 [children],因为该类型的内容类型是仅元素

    我在 stackoverflow 中搜索了一些页面来解决这个问题 确实遵循了一些正确的答案 但不起作用 我是春天的新人 对不起 这是我的调度程序 servlet
  • 如何测试 spring-security-oauth2 资源服务器安全性?

    随着 Spring Security 4 的发布改进了对测试的支持 http docs spring io spring security site docs 4 0 x reference htmlsingle test我想更新我当前的
  • 如何展平解析树并存储在字符串中以进行进一步的字符串操作 python nltk

    我正在尝试从树结构中获取扁平树 如下所示 我想将整个树放在一个字符串中 就像没有检测到坏树错误一样 S NP SBJ NP DT The JJ high JJ seven day PP IN of NP DT the CD 400 NNS
  • 将2-3-4树转换为红黑树

    我正在尝试将 2 3 4 树转换为 java 中的红黑树 但我无法弄清楚它 我将这两个基本类编写如下 以使问题简单明了 但不知道从这里到哪里去 public class TwoThreeFour
  • 休眠以持久保存日期

    有没有办法告诉 Hibernate java util Date 应该持久保存 我需要这个来解决 MySQL 中缺少的毫秒分辨率问题 您能想到这种方法有什么缺点吗 您可以自己创建字段long 或者使用自定义的UserType 实施后User
  • KeyPressed 和 KeyTyped 混淆[重复]

    这个问题在这里已经有答案了 我搜索过之间的区别KeyPressedand KeyTyped事件 但我仍然不清楚 我发现的一件事是 Keypressed 比 KeyTyped 首先被触发 请澄清一下这些事件何时被准确触发 哪个适合用于哪个目的
  • Swagger/Openapi-Annotations:如何使用 $ref 生成 allOf?

    我正在生成 Rest 端点 包括添加OpenAPI Swagger对生成的代码进行注释 虽然它对于基本类型运行得很好 但我在自定义类方面遇到了一些问题 现在我有很多自定义类的重复架构条目 使用 Schema 实现 MyClass class

随机推荐

  • 以编程方式确定汉字的笔画数?

    Unicode 是否存储有关中文 日文或其他基于笔画的字符的笔画计数信息 一点谷歌搜索想出了Unihan zip ftp ftp unicode org Public UNIDATA Unihan zip 发布的文件统一码联盟 http u
  • IntelliJ Idea Maven 项目中 Scala 模块的 Scala 签名错误

    免责声明 我是 Scala 新手 尝试在 IntelliJ IDEA 中使用简单的 scala archtype 创建示例 Scala Maven 项目 IntelliJ 版本是 14 1 2 下面是我的 pom 文件 我确实将 Scala
  • 未找到 GraphViz 的可执行文件:Anaconda-3

    我正在尝试显示树输出 但是当我运行下面的脚本时 我收到如下错误 IncationException 未找到 GraphViz 的可执行文件 我在这里搜索过类似的主题 但其中大多数与 Mac 相关 我使用的是 Windows 10 64 位操
  • 类常量

    我有几个 obj c 类 每个类都需要一些在 switch 语句中使用的常量 我曾尝试使用以下命令在 m 文件中定义这些数字常量 define预处理器指令 所有这些常量都以 kCell 开头 这似乎工作得很好 但 Xcode 的代码感知向我
  • 是否可以设置 git merge 来自动解析? (git 雷雷雷)

    我有 2 台笔记本电脑 其中有一个纯文本文件 该文件必须同步 它用作第三方软件的数据库 客户希望每天同步该文件的内容 第一个想法是制作一个将文件上传到 Dropbox 的脚本 但如果发生冲突 两个用户删除 A 行 第一个用户添加 B 行 第
  • 如何使用slf4j和java.util.logging登录tomcat

    我创建了一个在 Tomcat 8 上运行的 Web 应用程序 一如既往 我想使用 slf4j 在本例中 由 java util logging 支持 因为它是 Tomcat 的默认设置 相关依赖是这样的
  • 返回对 C++ 中静态局部变量的引用

    这个问题只是为了我更好地理解C 中的静态变量 我认为如果将 C 中的局部变量声明为静态 我可以返回对它的引用 因为该变量应该在函数返回后继续存在 为什么这不起作用 include
  • 如何解决Admob执行异常?

    我一直在尝试在我的全新应用程序中实施 Google Admob 广告 我已经处理错误代码 0 内部错误 和 广告 错误等待未来 异常几个小时了 从今天早上起 我就有了一个带有付款方式的 Admob 帐户 我一直在使用我的凭据关注 Googl
  • Tectonicus 2.25 的 XML 文件错误

    我正在尝试为我的单人游戏世界制作一张 Tectonicus 地图 因此我需要一个 XML 配置文件 但是当尝试制作地图时 我在终端 MAC OSX 中收到此错误 Parsing config from Users ralphvandenhe
  • 我无法找到 libftdi 的 mpsse (SPI) 模式的示例代码

    这不是一个家庭作业问题 尽管这是一个工作问题 几个月前 我刚写完一份规范 老板就会把它外包出去 因为资金紧张 所以我正在尝试自己做这件事 我是一个很弱的 C 编码员 如果 gcc 能输出一些运行时不会出现段错误的东西 或者有时根本没有任何东
  • 从 Spring MVC @RestController 返回视图

    As RestController是组成 Controller and ResponseBody 我相信如果我希望我的控制器同时工作 MVC 和 REST 控制器只需注释 RestController应该没事 那是对的吗 As RestCo
  • 从 App Store 中删除应用程序

    我按照以下步骤从 App Store 中删除了我的应用程序 但我没有看到任何 删除 选项 http msdn microsoft com en us library windows apps jj193601 aspx http msdn
  • 尝试创建一个脚本,如果提交者回答错误,该脚本会在表单提交时向提交者发送电子邮件

    我正在查看表单提交 如果提交者填写了任何错误的问题 则向提交者发送电子邮件 但脚本也会向所有输入正确的提交者发送电子邮件 我知道 if 脚本可以处理数字 就像我在另一个项目中使用它一样 但是当我将问题更改为 true false 时 它 似
  • 我应该使用哪个命名空间和程序集来声明共享项目中的转换器

    我应该使用哪个命名空间和程序集在 Xamarin 中的共享项目中声明转换器 对于该资源
  • 如何使用 Struts 预防 XSS 漏洞

    我们需要在 Struts 应用程序中添加反 XSS 支持 最具体地说 架构师要求所有用户输入在存储到数据库之前必须进行 清理 由于我不想重新发明方轮 我可以使用哪个 Java 库来实现此目的 以及把它放在哪里 理想情况下 它应该是可配置的
  • 在 docker 容器中使用 uwsgi 和 nginx 设置 Flask 应用程序

    我正在尝试在 Docker 容器中运行带有 Flask uwsgi 和 nginx 的 Docker 容器 我的 Dockerfile 看起来是这样的 FROM ubuntu 16 04 MAINTAINER Dockerfiles Ins
  • 如何更新推送通知的配置文件 - IOS

    我们正在开发一个IOS应用程序 我们想要实现推送通知 我已经浏览了苹果文档 并要求我的团队代理在iOS开发中心启用推送通知 他们似乎做到了 现在已经启用了 我已经在我的应用程序中注册了推送通知 如下所示 UIApplication shar
  • 寻找有关在 Windows 7 上安装应用程序的“正确”方法的文档

    我正在使用一些遗留应用程序 10 15 年 并试图找到有关在 Windows 7 上安装和运行它们 以及任何用户应用程序 的 正确 方法的指导 而无需完全的管理员权限 换句话说 可执行文件 只读文件应存放在何处 用户数据 读写文件应存放在何
  • Linux Entity Framework Core 上的 SQL Server 连接字符串无效

    我使用的是Linux 更具体地说是Xubuntu 我已在我的计算机上安装了 SQL Server Express 我目前正在制作一个网络应用程序 但我的连接似乎无法正常工作 或者我不太理解所有内容 我得到的输出是 A network rel
  • 在 Java 中使用一组固定字母将 long 编码/解码为字符串

    给定一组任意字母 String range 0123456789abcdefghijklmnopABCD 我正在寻找两种从长 字符串进行编码 解码的方法 String s encode range l and long l decode r