我有一个这样的数组:
MyString str = new MyString(new char[]{'a','b','c','d'});
MyString
对这个问题并不重要。
这是我到目前为止尝试过的:
public int length()
{
String s = "";
for (int i = 0; i<data.length; i++)
s = s+data[i];
数据包含包含字符串的列表。
int i = 0;
try
{
for(i=0; ; i++)
{
s.charAt(i);
}
}
catch(Exception e)
{
}
return i;
}
我正在使用的这种方法有效,但使用charAt(i)
; 这是不允许的。我如何根据问题中的规则尝试此操作?
--> expected output: str.length(); // 6
您可以捕获数组越界异常。
char[] a = { 'a', 'b', 'c', 'd', 'e'
};
int length = -1;
try {
for (;;) {
char c = a[++length];
}
}
catch (ArrayIndexOutOfBoundsException ae) {
}
System.out.println("length = " + length);
注意:这不是使用异常的好方法。 正如我之前所说,如果您有数组,则只需使用array.length
.