关于String的charAt()方法的哪些语句 上课是真的吗?
选择2个选项
一个。 charAt()方法可以将char值作为参数。
B中。 charAt()方法返回一个Character对象。
℃。表达式char ch =" 12345" .charAt(3)将3分配给ch。
d。表达式char ch = str.charAt(str.length())其中str是" 12345",将为ch分配3。
电子。第一个字符的索引是0.
F。如果传递的值大于或等于字符串的长度(或小于0),则抛出StringIndexOutOfBoundsException。
-G。如果传递的值大于或等于字符串的长度(或小于0),则抛出ArrayIndexOutOfBoundsException。
问题的答案是A,E。我的答案是E,F
本文的理由如下:两者 - ArrayIndexOutOfBoundsException
和
StringIndexOutOfBoundsException
,扩展IndexOutOfBoundsException
和
虽然在实践中,charAt
方法会抛出
StringIndexOutOfBoundsException
,它不是一个有效的选项,因为
实现可以自由地抛出一些其他异常,只要它是一个
IndexOutOfBoundsException
但这并没有多大意义,我很确定charAt()
会抛出StringIndexOutOfBoundsException
。论文回答不正确吗?
答案 0 :(得分:3)
您的第二个答案不正确:charAt
抛出IndexOutOfBoundsException
。
选择'A'也是如此,因为Java编译器会隐式地将char
转换为int
(尽管将char
用作索引是有意义的情况会看起来很人工)。
你选择'E'是对的是正确的。
答案 1 :(得分:0)
我认为:A - 真实,E - 真实
A - true,因为每个char也隐式为int,即你可以int x = 'a'
;
E - 显然是真的,这是一个基本的真实陈述;
B - false,因为它返回char而不是Character;
C - false,因为索引是基于0的;
D - 假,因为它会抛出异常;
F,G - 只需检查JavaDoc或尝试一个例子;这些都是微不足道的。
答案 2 :(得分:0)
感谢投票人非常感谢
我认为最佳答案:
即使它确实抛出一个StringIndexOutOfBoundsException,也不应该依赖它,因为该方法的记录合同是抛出一个IndexOutOfBoundsException。在Java 9中,Oracle可以决定抛出一个扩展IndexOutOfBoundsException的BrandNewException,而不会破坏已记录的合同。如果依赖于抛出StringIndexOutOfBoundsException,则依赖于将来可能会更改的实现细节。
Java OCA SE7考试结婚!