现在的位置: 首页 > 综合 > 正文

java 接收字符

2019年03月27日 ⁄ 综合 ⁄ 共 988字 ⁄ 字号 评论关闭
/ /读取一个字符用扫描仪与正则表达式
读卡器=新的扫描仪扫描仪(System.in);
reader.next(“。”)。的charAt(0); / /允许任何字符
reader.next(“\ \ D”)的charAt(0); / /一个数字
reader.next(“\ \ D”)的charAt(0); / /一个非数字
reader.next(“\ \ S”)的charAt(0); / /一个非空白字符
reader.next(“\ \ W”)的charAt(0); / /一个“字”的字符(字母和数字)

当输入一个字符,用reader.nextByte();接收字符时,报异常:

Exception in thread "main" java.util.InputMismatchException
        at java.util.Scanner.throwFor(Unknown Source)
        at java.util.Scanner.next(Unknown Source)
        at java.util.Scanner.nextByte(Unknown Source)
        at java.util.Scanner.nextByte(Unknown Source)
        at Student.Judge(Student.java:30)
        at Student.main(Student.java:94)

改成 reader.next().charAt(0);就好啦~~

【关于reader.next().charAt(0);】

reader.next():接收成string型

.charAt(0);   转成char


【关于reader.next().charAt(0);的0】

比如"abcde"
调用chatAt(0) 这个0就是该字符串中某一字符的索引
返回a
调用chatAt(1) 返回b

【Scanner vs System.in.read()】

Scanner——
reader.nextByte();不能接收字符 
->reader.next().CharAt(0);接收字符 ,用户输入1,则判断是否是'1'
reader.nextInt();接收数字

Scanner vs System.in.read()——
S=reader.next().charAt(0);//字符串转成第一个字符
S=(char)System.in.read();//接收一串字符,转成若干个字符,对每个字符执行一次操作

抱歉!评论已关闭.