Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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_Type Conversion - Fatal编程技术网

如何通过java代码将字母数字字符串转换为长字符串?

如何通过java代码将字母数字字符串转换为长字符串?,java,type-conversion,Java,Type Conversion,例如,BRYR904000Z5必须转换为数字格式,以便 A=101,B=102,C=103。。。。直到Z=126为止 我要BRYR904000Z5作为1021181251189040001265 我还想知道是否可以显示整个数字。使用密码生成器 我看到了分隔字符的代码,但这对我来说很难理解。谢谢你如果我们处理的是所有大写字母,那么A的值是65。因此,为了使A为101,我们必须加上36: /*Expects only capital letters*/ public int charToIntCus

例如,BRYR904000Z5必须转换为数字格式,以便 A=101,B=102,C=103。。。。直到Z=126为止

我要BRYR904000Z5作为1021181251189040001265 我还想知道是否可以显示整个数字。使用密码生成器


我看到了分隔字符的代码,但这对我来说很难理解。谢谢你

如果我们处理的是所有大写字母,那么A的值是65。因此,为了使A为101,我们必须加上36:

/*Expects only capital letters*/
public int charToIntCustomConversion(char c)
{
    return  (int) c + 36;
}
int c获取c的ASCII值并返回该int+36

要转换回:

/*Expects only capital letters*/
public char intToCharCustomConversion(int n)
{
    return  (char) (n - 36);
}
编辑: 如果有任何混淆,请原谅,以上方法仅用于从char转换为int和int转换为char。您不需要转换数字,因为它们保持不变(只需将它们添加到字符串中)

换句话说,当您再次遇到字母时,在字符串中循环并调用ChartPointCustomConversion,假设所有字母都是大写,如果遇到数字,只需将其添加到转换后的字符串中即可

返回原始字符串有点棘手,但这似乎不是您要问的问题,尽管如此,如果您知道int-coo响应已转换的字符,您可以使用intToCharCustomConversion

转换回: 如果希望能够轻松确定转换字符串中的数字是响应于原始字符串中的字符还是数字,最简单的方法可能是使用数组。如果转换数组中的元素是单个数字,则您知道它最初是一个数字。如果它是一个3位数的数字,您就知道它最初是一个字符


注意:还有很多可能更好的方法可以做到这一点。

这里是一个算法的框架:

创建一个新的空StringBuilder 循环遍历字符串的所有字符 在每次迭代中: 如果当前字符大于等于“A”,则
0x0041代表大写字母A的unicode。

您需要在字符串的字符上创建一个循环,以构建一个新的循环。这一点也不难。尝试一些操作。这将中断输入字符串中出现数字的位置。@HunterMcMillen只需要大写字母。@HunterMcMillen和/或downvoter,请参阅编辑。不知道为什么我会被否决。我提供了进行必要转换的方法。这些数字不需要通过这些方法输入,因为它们保持不变……你说得对,我犯了一个愚蠢的错误-:我换了帖子。史蒂文:我相信这是有效的,显然是非理性的反对票。
StringBuilder result = new StringBuilder();
for(int i =0; i < string.length(); ++i) {
     char c = string.charAt(i);
     if (Character.isLetter(c) {
         result.append(c - 0x0041 + 101);
     } else if (Character.isDigit) {
         result.append(c);
     } else throw new RuntimeException("BS");
 }