首页 > 解决方案 > 为什么打印时我的 charAt 给了我一个数字而不是一个字母

问题描述

使用下面的代码时,我是一个初学者,正在测试 String 方法的作用。但是,每当使用 hello 并使用 char i 表示 0 时,为什么它不打印出 h 而是 104。如果有原因打印 104,为什么?

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        String hello = "hello";
        char i  = hello.charAt(0);
        System.out.println(+i);
    }
}

标签: java

解决方案


'+' 把你弄乱了。删除那个字符,你会得到你想要的结果:

class Solution {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String hello = "hello";
        char i  = hello.charAt(0);
        System.out.println(i);
    }
}

结果:

h

104 是代表'h'字符的 ASCII 值。我不可能提前告诉你这个,但是显然在字符值前面加上一个'+'会导致它被转换为一个整数,即它的 ASCII 值。


推荐阅读