如何将char从0-1转换为double?

时间:2019-07-12 21:49:21

标签: java char type-conversion double

我正在尝试将一个char数组转换为一个double数组,每个double都在0-1之间,以便a将是0,而z将是{{ 1}}。目前,我已经想到了这种方法,

1

但是public static double[] charToDouble(char[] chars){ double[] doubles=new double[chars.length]; double one=1; double twentySix=26; double eachChar=one/twentySix; for(int i=0; i<chars.length; i++){ int charNum=((int)input)-96; doubles[i]=eachChar*charNum; } return doubles; } 将转换为a而不是1/26

1 个答案:

答案 0 :(得分:5)

您需要除以25而不是26,因为26个字母之间有25个间隔

您过度考虑自己的方法;您只需要在一个简单的循环中一行代码:只需从每个字母的a中减去char,然后将结果除以25

for(int i = 0; i < chars.length; i++) {
    doubles[i] = (chars[i] - 'a') / 25d;
}

请注意25之后的小“ d”-使25成为double,这使结果成为double。如果不这样做,则会得到整数算术运算,它将使除z之外的每个字母都产生0