java 问题 为什么这段代码的答案会是a c????

publicstaticvoidmain(String[]args){chariBegin=3;intiEnd=6;Strings=newString("Javacanh... public static void main(String[] args) {

char iBegin=3;
int iEnd=6;
String s=new String("Java can help me");
System.out.println(s.substring(iBegin, iEnd));
}
自己认为这个char转换会成 51的数字然后会异常报出啊???
展开
 我来答
络雨凉
2015-11-19 · 超过28用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:35.5万
展开全部
你的iBegin定义成了char类型,虽然char也可以用3来赋值,但它的值绝对不是数值3,而是ASCLL码为3的字符,你应该把iBegin定义为int型
追问
是的呀,我也是这么想的 iBegin实际应该为51,而String截取的话 就会 报异常的  可是为和 就会输出 a c呢???
追答
iBegin自始至终它的值都是3,只不过但它是char类型时显示的是ASCLL码为3的字符,在计算时出现了隐式转换把iBegin转换成了int类型,就是数值3了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式