将字符串(字符和数字)编码为仅包含a-z字符的字符串(BaseN)

时间:2017-11-29 15:16:52

标签: java encoding

有人知道将字符串转换为仅字符(a-zA-Z)字符串的函数或库吗?也许有一个BaseN实现符合我的要求。

也许我没有把它写成如此清晰,所以我再试一次。我需要一种编码的方法,例如JGHSDJ67-878DUSDd-3434到一个像aaazzzttteeehhheeerrr这样的字符串(此处不允许使用数字) 其次,我需要一种方法来解码" aaazzzttteeeehhheeerrr"回到JGHSDJ67-878DUSDd-3434

Base32看起来不错,但Base32包含数值,例如 " JGHSDJ67-878DUSDd-3434"将是" JJDUQU2EJI3DOLJYG44EIVKTIRSC2MZUGM2A ====" Base32编码。如您所见,仍然存在数值,因为它们是在BASE32中定义的。所以我要找的是一种仅基于字符a-z的编码。

3 个答案:

答案 0 :(得分:1)

这可能有效

String newString = yourString.replaceAll("[^a-zA-Z]","");

我没有对它进行过测试,但我的想法是使用Java replaceAll函数来替换任何不是字符的东西。我知道你要求一个库但是当你用Java标记它时我假设你可以使用一些代码吗?

编辑:上面的代码将获取您的字符串并删除任何非a-z或A-Z的字符。

答案 1 :(得分:1)

也许是这样的:

    String hello = "Hello!! :)";
    BigInteger bi = new BigInteger(hello.getBytes());
    String base32 = bi.toString(32);

这会将字符串的字节代码转换为单个二进制数,然后在基数32中格式化该数字。

答案 2 :(得分:0)

是否要删除所有数字和特殊字符?

试试这个:String resultString = subjectString.replaceAll("\\P{L}", "");