Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:如何将字母数字字符串转换为整数,以及如何将整数转换为相同的字母数字字符串?_Java - Fatal编程技术网

Java:如何将字母数字字符串转换为整数,以及如何将整数转换为相同的字母数字字符串?

Java:如何将字母数字字符串转换为整数,以及如何将整数转换为相同的字母数字字符串?,java,Java,我正在尝试将字母数字字符串转换为整数,并从整数生成相同的字母数字字符串 下面是我的代码。他们是否有更好的方法来实现这一目标 Map<Character, String> lettersToNumbers = new HashMap<Character, String>(); lettersToNumbers .put('1', "01"); lettersToNumbers .put('2', "02"); lettersToNumber

我正在尝试将字母数字字符串转换为整数,并从整数生成相同的字母数字字符串

下面是我的代码。他们是否有更好的方法来实现这一目标

     Map<Character, String> lettersToNumbers = new HashMap<Character, String>();
    lettersToNumbers .put('1', "01");
    lettersToNumbers .put('2', "02");
    lettersToNumbers .put('3', "03");
    lettersToNumbers .put('4', "04");
    lettersToNumbers .put('5', "05");
    lettersToNumbers .put('6', "06");
    lettersToNumbers .put('7', "07");
    lettersToNumbers .put('8', "08");
    lettersToNumbers .put('9', "09");
    lettersToNumbers .put('0', "00");
    lettersToNumbers .put('A', "10");
    lettersToNumbers .put('B', "11");
    lettersToNumbers .put('C', "12");
    lettersToNumbers .put('D', "13");
    lettersToNumbers .put('E', "14");
    lettersToNumbers .put('F', "15");
    lettersToNumbers .put('G', "16");
    lettersToNumbers .put('H', "17");
    lettersToNumbers .put('I', "18");
    lettersToNumbers .put('J', "19");
    lettersToNumbers .put('K', "20");
    lettersToNumbers .put('L', "21");
    lettersToNumbers .put('M', "22");
    lettersToNumbers .put('N', "23");
    lettersToNumbers .put('O', "24");
    lettersToNumbers .put('P', "25");
    lettersToNumbers .put('Q', "26");
    lettersToNumbers .put('R', "27");
    lettersToNumbers .put('S', "28");
    lettersToNumbers .put('T', "29");
    lettersToNumbers .put('U', "30");
    lettersToNumbers .put('V', "31");
    lettersToNumbers .put('W', "32");
    lettersToNumbers .put('X', "33");
    lettersToNumbers .put('Y', "34");
    lettersToNumbers .put('Z', "35");

        StringBuilder sb= new StringBuilder();
    String covertToInteger = "FR1234".toUpperCase();
     for (Character ch : covertToInteger.toCharArray()){
            sb.append(lettersToNumbers.get(ch));
        }

System.out.println(sb.toString());

String integertoalphanumeric= sb.toString();
int i=0;
for(;i<abc.length();){

    for (Entry<Character, String> entry : lettersToNumbers.entrySet()) {
        if (entry.getValue().equals(abc.substring(i, i+2))) {
            System.out.print(entry.getKey());
        }
    }
    i=i+2;

}
Map lettersToNumbers=newhashmap();
lettersToNumbers.put('1','01');
lettersToNumbers.put('2','02');
lettersToNumbers.put('3','03');
lettersToNumbers.put('4','04');
lettersToNumbers.put('5','05”);
lettersToNumbers.put('6','06');
lettersToNumbers.put('7','07');
lettersToNumbers.put('8','08”);
lettersToNumbers.put('9','09');
lettersToNumbers.put('0','00');
lettersToNumbers.put('A','10');
lettersToNumbers.put('B','11');
lettersToNumbers.put('C','12”);
lettersToNumbers.put('D','13”);
lettersToNumbers.put('E','14”);
字母编号。put('F','15”);
lettersToNumbers.put('G','16”);
lettersToNumbers.put('H','17”);
lettersToNumbers.put('I','18”);
lettersToNumbers.put('J','19');
lettersToNumbers.put('K','20”);
lettersToNumbers.put('L','21”);
lettersToNumbers.put('M','22”);
lettersToNumbers.put('N','23”);
字母编号。大写('O','24”);
lettersToNumbers.put('P','25”);
lettersToNumbers.put('Q','26');
lettersToNumbers.put('R','27”);
lettersToNumbers.put('S','28');
lettersToNumbers.put('T','29”);
字母编号。put('U','30”);
lettersToNumbers.put('V','31”);
lettersToNumbers.put('W','32”);
lettersToNumbers.put('X','33”);
lettersToNumbers.put('Y','34”);
lettersToNumbers.put('Z','35”);
StringBuilder sb=新的StringBuilder();
字符串covertToInteger=“FR1234”.toUpperCase();
for(字符ch:covertToInteger.toCharArray()){
sb.追加(lettersToNumbers.get(ch));
}
System.out.println(sb.toString());
字符串integertoalphanumeric=sb.toString();
int i=0;

对于(;i假设您谈论的是
Integer
类型,那么您所尝试的将不起作用

假设我们将自己限制为6个字符的字母数字字符串,如您的示例所示。共有62个(拉丁)字母数字字符:10位数字、26个大写字母和26个小写字母

不同的6个字符alphanum字符串的总数为626==56800235584。但
int
/
整数
只能表示232==4294967296个不同的值。这一数量级太小了

因此,从数学上讲,不可能想出一种编码方法,将所有可能的6个字符的alphanum字符串表示为不同的
int


(如果使用
long
而不是
int
,则11个字符串太长。)

您需要提供更多信息。您的输入是什么?在哪里检查字符串和整数?在
3456
1234
之间的数学关系是什么?预结束和删除
FR
应该足够简单。这不是一个可逆函数。您丢失了信息“FR”当您转换为整数时,除非您以某种方式保存它,否则无法反转操作。如果您需要这种控制,我建议您编写一个类来处理这种逻辑并保持其一致性。一个
int
值只能存储约40亿个不同的值。但是,您可以按照自己喜欢的方式执行编码您无法更改此设置。问题是,如果没有此信息,您还希望能够编码什么?无法知道最佳解决方案是什么。我已尝试过。1)将字符串编码为字节,然后将字节转换为整数