为什么我不能用我的输出打印char类型值

时间:2016-05-14 07:18:55

标签: java

package practice;

import java.util.Scanner;

public class Shuvo {

    public static void main(String[] args) {
        System.out.print("please Enter your name: ");
        char name;
        Scanner user= new Scanner(System.in);
         name = user.next().charAt('0');
        System.out.println("HELLOW" +name); //<- why this isn't working??
        user.close();
    }
}

输出:

请输入您的姓名:shuvo

线程“main”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:48

at java.lang.String.charAt(Unknown Source)
at practice.Shuvo.main(Shuvo.java:11)

2 个答案:

答案 0 :(得分:3)

user.next().charAt('0');将返回与编号为'0'的索引对应的字符。

'0'属于char类型,实际上是数字,其小数值为48。输入时没有48个字符,您将获得ArrayIndexOfOfBoundsException

使用:

user.next().charAt(0);

将返回输入中的第一个字符。

答案 1 :(得分:0)

或只是

char name=user.next().charAt(0);