Как определить длину списка символов, заполненного строками, без использования ЛЮБЫХ методов String и НЕТ импорта - PullRequest
0 голосов
/ 01 декабря 2019

У меня есть такой массив:

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];

data содержит список со строками.

 int i = 0; 
 try 
 {

 for(i=0; ; i++)
 {
   s.charAt(i);
 }

 }
 catch(Exception e)
 {

 }

return  i;

}

Этот метод, который я использую, работает, но использует charAt(i);что не разрешено. Как я могу попробовать это в соответствии с правилами в моем вопросе?

--> expected output: str.length(); // 6 

1 Ответ

1 голос
/ 01 декабря 2019

Вы можете перехватить исключение массива за пределами границ.

      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.

...