charAt方法,试卷Q.

时间:2014-03-22 11:35:15

标签: java

  

关于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

本文的理由如下:两者 - ArrayIndexOutOfBoundsExceptionStringIndexOutOfBoundsException,扩展IndexOutOfBoundsException和 虽然在实践中,charAt方法会抛出 StringIndexOutOfBoundsException,它不是一个有效的选项,因为 实现可以自由地抛出一些其他异常,只要它是一个 IndexOutOfBoundsException

但这并没有多大意义,我很确定charAt()会抛出StringIndexOutOfBoundsException。论文回答不正确吗?

3 个答案:

答案 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考试结婚!