这就是我得到的
public class CharacterArithmeticExperiment {
public static void main(String[] args) {
char start = '1';
for(int i = 1; i < 500;i++){
System.out.printf("%c", start + i);
}
}
}
输出:
23456789:; <=>?@ ABCDEFGHIJKLMNOPQRSTUVWXYZ [] ^ _`abcdefghijklmnopqrstuvwxyz {|}〜????????????????????????????????????? ????�������������������������� ������������������������ ????????????????????????????????????????????????????????? ??????????????????????????????????????????????????? ??????????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ??????????????????????????????????????????????
这是问题,我是否需要其他东西来正确显示它,或者这是怎么回事,我对字符的了解还不够多,但我知道该死的字符更多,我真的很想看看他们的帮助将不胜感激。
答案 0 :(得分:0)
java中的char数据类型基于 ascii 值。每个字符,符号和整数都与 ascii 值相关联。在您的代码中:
public class CharacterArithmeticExperiment {
public static void main(String[] args) {
char start = '1';
for(int i = 1; i < 500;i++){
System.out.printf("%c", start + i);
}
}
}
此处 ascii 的值是1。在 for 循环中,向 start 添加 i 变量 start 被强制转换并变为49。因此,对于第一次迭代, start + i = 50 的值以及与ascii值50相关的字符为“ 2”。因此,这些值也会在下一次迭代中相应地打印出来。 因此,用于打印字符的工作代码可以根据以下ascii值:
public class CharacterArithmeticExperiment {
public static void main(String[] args) {
char start = 'a';
for(int i = 0; i < 26 ;i++){
System.out.printf("%c", start + i);
}
}
}
输出: abcdefghijklmnopqrstuvwxyz