在Java

时间:2018-09-10 05:51:54

标签: java char

这就是我得到的

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 {|}〜????????????????????????????????????? ????�������������������������� ������������������������ ????????????????????????????????????????????????????????? ??????????????????????????????????????????????????? ??????????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ??????????????????????????????????????????????

这是问题,我是否需要其他东西来正确显示它,或者这是怎么回事,我对字符的了解还不够多,但我知道该死的字符更多,我真的很想看看他们的帮助将不胜感激。

1 个答案:

答案 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

for refering to ascii value table click here