Scanner user_input = new Scanner( System.in );
String cipher_input = user_input.nextLine();
String[] arr_cipher_input = cipher_input.split("");
int[] arr_ctext = new int[cipher_input.length()];
for (int i = 0; i < cipher_input.length(); i++) {
arr_ctext[i] = (int) arr_cipher_input[i].charAt(i);
}
上面的代码接受一个输入并将其拆分成一个数组(例如&#34;你好&#34;变成[&#34; h&#34;,&#34; e&#34;&#34; l& #34;,&#34; l&#34;,&#34; o&#34;])然后我尝试将字符转换为它们的ascii值,这是它在标题中返回错误的位置。它每次都正确地转换第一个字符,然后在第二个字符处停止,我似乎无法找出原因。阵列长度似乎相同,所以我不确定我做错了什么。我很感激任何帮助。提前谢谢!
答案 0 :(得分:5)
您正在创建一个字符{}
{'a': <__main__.Example object at 0x01556530>, 'b': <__main__.Example object at 0x015564D0>, 'c': <__main__.Example object at 0x01556A50>}
[Finished in 0.163s]
(s)。但是您正在尝试访问后续角色。没有。将String
更改为charAt(i)
即可修复。像,
charAt(0)
或(更有效率)跳过arr_ctext[i] = (int) arr_cipher_input[i].charAt(0);
并直接访问输入中的字符。像,
split